快捷搜索:   nginx

LINUX下Mail服务器配置

随着互联网的飞速发展,电子邮件已经成为人们生活中必不可少的通信工具。架设邮件系统相对来说比较的麻烦些,在网上有很多的相关资料可以查阅。真的很感谢这么多热于奉献的网友,使这个网络更加的强大。一直以来都想架设自己的MAIL服务器,由于时间和条件的关系未曾如愿,等到有空了一心放 到这上面的时候,又遇到了各种各样的问题,在我永不放弃信念下,我架设的邮件服务器终于告成。当然了,功能还有太多不完善的地方,我会在以后的时间加以弥补,使其更加的强大。此次尝试感触颇多,学习是一个永无止境的过程,

    永远不要停滞在一个地方顽固不前,遇到问题一定要解决它,在遇到问题和解决问题的过程中找到人生乐趣。以下我把自己的安装过程写出来,不求给广大网友指点迷津,只求自己能够三省吾身。相信自己,一天成长一点,一天积累一点。

    安装ucspi-tcp用来简单的建立客户机-服务器tcp后台程序

    [root@mail mail]# tar zxvf ucspi-tcp0.88.tar.gz

    [root@mail mail]# cd ucspi-tcp-0.88

    [root@mail mail]# make

    [root@mail ucspi-tcp-0.88]# make setup check

    ./install

    ./instcheck

    安装daemontools

    ――――――是inetd和winetd的代替品,用它来监听qmail-send,qmail-smtpd,qmail-pop3d

    [root@mail ucspi-tcp-0.88]# mkdir -p /package

    [root@mail ucspi-tcp-0.88]# chmod 1755 /package/

    [root@mail ucspi-tcp-0.88]# cd /package/

    [root@mail package]# tar zxvf daemontools-0.76.tar.gz

    [root@mail package]# cd admin/daemontools-0.76/

    [root@mail daemontools-0.76]# patch -p1</package/daemontools-0.76.errno.patch

    patching file src/error.h

    [root@mail daemontools-0.76]# package/install

    Adding svscanboot to inittab...

    init should start svscan now.

    测试如下:

    [root@mail httpd-2.0.50]# sleep 5

    [root@mail httpd-2.0.50]# ps ax|grep svscan

    31570 ?        S      0:00 /bin/sh /command/svscanboot

    31572 ?        S      0:00 svscan /service

    31580 pts/1 S 0:00 grep svscan

    安装qmail―――本文的主角,世界上使用最广的邮件系统之一

    [root@mail mail]# tar zxvf qmail-1.03.tar.gz

    [root@mail mail]# cd qmail-1.03

    [root@mail qmail-1.03]# patch -p1<../qmail-1.03.errno.patch

    patching file cdb_seek.c

    patching file dns.c

    patching file error.3

    patching file error.h

    [root@mail qmail-1.03]# mkdir /var/qmail

    [root@mail qmail-1.03]# groupadd nofiles

    [root@mail qmail-1.03]# useradd -g nofiles -d /var/qmail/alias alias

    [root@mail qmail-1.03]# useradd -g nofiles -d /var/qmail qmaild

    [root@mail qmail-1.03]# useradd -g n

ofiles -d /var/qmail qmaill

    [root@mail qmail-1.03]# useradd -g nofiles -d /var/qmail qmailp

    [root@mail qmail-1.03]# groupadd qmail

    [root@mail qmail-1.03]# useradd -g qmail -d /var/qmail qmailq

    [root@mail qmail-1.03]# useradd -g qmail -d /var/qmail qmailr

    [root@mail qmail-1.03]# useradd -g qmail -d /var/qmail qmails

    [root@mail qmail-1.03]# make

    [root@mail qmail-1.03]# make setup check

    [root@mail qmail-1.03]# ./config-fast mail.china-yr.com

    Your fully qualified host name is mail.china-yr.com.

    Putting mail.china-yr.com into control/me...

    Putting china-yr.com into control/defaultdomain...

    Putting china-yr.com into control/plusdomain...

    Putting mail.china-yr.com into control/locals...

    Putting mail.china-yr.com into control/rcpthosts...

    Now qmail will refuse to accept SMTP messages except to mail.china-yr.com.

    Make sure to change rcpthosts if you add hosts to locals or virtualdomains!

    [root@mail qmail-1.03]# cd ~alias;touch .qmail-postmaster .qmail-mailer-daemon .qmail-root

    [root@mail alias]# chmod 644 ~alias/.qmail*

    在ftp://ftp.pipeline.com.au/pipeint/sources/linux/WebMail/qmailctl.txt

    下载qmailctl.txt  并且上传到指定目录

    [root@mail mail]# cp qmailctl.txt /etc/init.d/qmail

    [root@mail mail]# mkdir -p /var/qmail/supervise/qmail-send/log

    [root@mail mail]# mkdir -p /var/qmail/supervise/qmail-smtpd/log

    [root@mail mail]# mkdir -p /var/qmail/supervise/qmail-pop3d/log

    [root@mail mail]# vi /var/qmail/supervise/qmail-send/run

    #!/bin/sh

    exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/

    [root@mail mail]# vi /var/qmail/supervise/qmail-send/log/run

    #!/bin/sh

    exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \

    s10000000 n30 /var/log/qmail/send

    [root@mail mail]# vi /var/qmail/supervise/qmail-smtpd/run

    #!/bin/sh

    QMAILDUID=`id -u qmaild`

    NOFILESGID=`id -g qmaild`

    exec /usr/local/bin/softlimit -m 2000000 \

    /usr/local/bin/tcpserver \

    -H -l hostname.yourdomain.com \

    -v -x /etc/tcp.smtp.cdb \

    -c

20 -R -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \

    /var/qmail/bin/qmail-smtpd hostname.yourdomain.com \

    /var/lib/vpopmail/bin/vchkpw /bin/true 2>&1

    [root@mail mail]# vi /var/qmail/supervise/qmail-smtpd/log/run

    #!/bin/sh

    exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s10000000 \

    n30 /var/log/qmail/smtpd

    [root@mail mail]# vi /var/qmail/supervise/qmail-pop3d/run

    /usr/local/bin/tcpserver \

    -H -l example.com \

    -v -x /etc/tcp.pop3.cdb -c 30 -R 0 pop3 \

    /var/qmail/bin/qmail-popup example.com \

    /var/lib/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1

    [root@mail mail]# vi /var/qmail/supervise/qmail-pop3d/log/run

    #!/bin/sh

    exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s10000000 \

    n30 /var/log/qmail/pop3d

    [root@mail mail]# chmod 755 /var/qmail/supervise/qmail-send/run

    [root@mail mail]# chmod 755 /var/qmail/supervise/qmail-send/log/run

    [root@mail mail]# chmod 755 /var/qmail/supervise/qmail-smtpd/run

    [root@mail mail]# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

    [root@mail mail]# chmod 755 /var/qmail/supervise/qmail-pop3d/run

    [root@mail mail]# chmod 755 /var/qmail/supervise/qmail-pop3d/log/run

    [root@mail mail]# mkdir /var/log/qmail

    [root@mail mail]# mkdir /var/log/qmail/smtpd

    [root@mail mail]# mkdir /var/log/qmail/send

    [root@mail mail]# mkdir /var/log/qmail/pop3d

    [root@mail mail]# chown -R qmaill /var/log/qmail

    [root@mail mail]# ln -s /var/qmail/supervise/qmail-send /service/

    [root@mail mail]# ln -s /var/qmail/supervise/qmail-smtpd/ /service/

    [root@mail mail]# ln -s /var/qmail/supervise/qmail-pop3d/ /service/

    [root@mail mail]# vi /var/qmail/supervise/qmail-smtpd/run

    #!/bin/sh

    QMAILDUID=`id -u qmaild`

    NOFILESGID=`id -g qmaild`

    exec /usr/local/bin/softlimit -m 2000000 \

    /usr/local/bin/tcpserver \

    -H -l mail.china-yr.com \

    -v -x /etc/tcp.smtp.cdb \

    -c 20 -R -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \

    /var/qmail/bin/qmail-smtpd mail.china-yr.com

\

    [root@mail mail]# vi /var/qmail/supervise/qmail-pop3d/run

    #!/bin/sh

    exec /usr/local/bin/softlimit -m 3000000 \

    /usr/local/bin/tcpserver \

    -H -l mail.china-yr.com \

    -v -x /etc/tcp.pop3.cdb -c 30 -R 0 pop3 \

    /var/qmail/bin/qmail-popup mail.china-yr.com \

    /var/lib/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1

    [root@mail mail]# cd /etc/init.d/

    [root@mail init.d]# chmod +x qmail

    [root@mail init.d]# /etc/init.d/qmail start

    Starting qmail
[root@mail init.d]# groupadd -g 89 vchkpw

    [root@mail init.d]# useradd -g vchkpw -u 89 -d /home/vpopmail vpopmail

    [root@mail init.d]# mkdir -p /home/vpopmail/etc

    [root@mail init.d]# echo "china-yr.com">/home/vpopmail/etc/defaultdomain

    [root@mail init.d]# echo '127.0.0.1:allow,RELAYCLIENT=""'>/home/vpopmail/etc/tcp.smtp

    [root@mail init.d]# cd /home/vpopmail/etc ; tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

    [root@mail etc]# echo "localhost|0|vpopmail|123456|vpopmail" > /home/vpopmail/etc/vpopmail.mysql

    [root@mail etc]# chmod 640 /home/vpopmail/etc/vpopmail.mysql

    [root@mail etc]# chown -R vpopmail.vchkpw /home/vpopmail/etc

    安装VPOPMAIL

    ---一个以qmail为基础的虚拟域管理包,其允许在一个IP地址添加多个虚拟域

    [root@mail vpopmail-5.4.0]# ./configure --enable-auth-module=mysql  --enable-auth-logging=n --enable-mysql-logging=n --enable-logging=e --enable-valias=y --enable-pssswd=n --enable-roaming-users=y --enable-incdir=/usr/

    local/mysql/include --enable-libdir=/usr/local/mysql/lib

    Current settings

  ---------------------------------------

    vpopmail directory = /home/vpopmail

    uid = 89

    gid = 89

    roaming users = ON --enable-roaming-users

    tcpserver file = /home/vpopmail/etc/tcp.smtp

    open_smtp file = /home/vpopmail/etc/open-smtp

    rebuild tcpserver file = ON --enable-rebuild-tcpserver-file (default)

    password learning = OFF --disable-learn-passwords (default)

    md5 passwords = ON --enable-md5-passwords (default)

    file locking = ON --enable-file-locking (default)

    vdelivermail fsync = OFF --disable-file-sync (default)

    make seekable = ON

--enable-make-seekable (default)

    clear passwd = ON --enable-clear-passwd (default)

    user dir hashing = ON --enable-users-big-dir (default)

    address extensions = OFF --disable-qmail-ext (default)

    ip alias = OFF --disable-ip-alias-domains (default)

    domain quotas = OFF --disable-domainquotas (default)

    auth module = mysql --enable-auth-module=mysql

    mysql replication = OFF --disable-mysql-replication (default)

    mysql logging = OFF --disable-mysql-logging (default)

    mysql limits = OFF --disable-mysql-limits (default)

    MySQL valias = ON --enable-valias

    auth inc = -I/usr/local/mysql/include

    auth lib = -L/usr/local/mysql/lib -lmysqlclient -lz

    system passwords = OFF --disable-passwd (default)

    pop syslog = show only failed attempts

    --enable-logging=e (default)

    auth logging = OFF --disable-auth-logging

    all domains in one SQL table = --enable-many-domains (default)

    [root@mail vpopmail-5.4.0]# make

    出现错误:如下…..

    vauth.c: In function `vwrite_dir_control':

    vauth.c:1101: warning: format argument is not a pointer (arg 3)

    vauth.c: In function `vcreate_dir_control':

    vauth.c:1117: warning: format argument is not a pointer (arg 3)

    vauth.c:1138: warning: format argument is not a pointer (arg 3)

    vauth.c: In function `vdel_dir_control':

    vauth.c:1155: warning: format argument is not a pointer (arg 3)

    vauth.c: In function `valias_select':

    vauth.c:1263: warning: format argument is not a pointer (arg 3)

    vauth.c:1267: warning: assignment makes pointer from integer without a cast

    vauth.c: In function `valias_select_next':

    vauth.c:1274: error: subscripted value is neither array nor pointer

    vauth.c: In function `valias_insert':

    vauth.c:1294: warning: format argument is not a pointer (arg 3)

    vauth.c: In function `valias_remove':

    vauth.c:1314: warning: format argument is not a pointer (arg 3)

    vauth.c: In function `valias_delete':

    vauth.c:1334: warning: format argument is not a pointer (arg 3)

    vauth.c: In function `valias_delete_domain':

    vauth.c:1354: warni

ng: format argument is not a pointer (arg 3)

    vauth.c: In function `vcreate_valias_table':

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论