• QMAIL+mysql for ;LINUX_MAILSERVER


                                                   MAIL-SERVER说明书
    ------------------------------------------------------------------------------------------------------

    一。Linux qmail安装指南

    此文所实现的邮件系统功能列表:
    ·SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5),TLS(SSL)支持
    ·POP3服务器:CRAM-MD5,APOP,和SSL支持
    ·IMAP服务器:TLS(SSL)支持
    ·邮件病毒清除
    ·邮件附件限制
    ·中文垃圾邮件过滤(最高90%)
    ·自动回复
    ·邮件列表
    ·Web管理
    ·用户注册
    ·通过Web显示统计信息
    ·WebMail
    ·MRTG
    二。检查DNS设置
    *****************************************************************************************************
    //DNS的配置文件\\
    $ttl 38400
    @ IN SOA dns.tyler110.com. admin.tyler110.com. (
       1120991227
       10800
       3600
       604800
       38400 )
    @ IN NS dns.tyler110.com.
    @ IN NS dns.tyler110.com.
    @ IN MX 5 mail.tyler110.com.
    dns IN A 192.168.77.248
    www IN A 192.168.77.248
    ftp IN A 192.168.77.248
    mail IN A 192.168.77.248
    **************************************************************************************************
    在开始之前,确保正确设置了DNS MX记录.例如使用"tyler110.com"作为邮件域,对MX记录进行测试:
    在Linux下:
    host -t mx domain.com
    domain.com. mail is handled by 10 mail.domain.com.
    host -t a mail.domain.com
    mail.domain.com. has address 192.168.77.248
    ************************************对外的MailServer要做如下测试**************************
    在Windows下:
    C:\>nslookup
    Default Server: ns.domain.com
    Address: 192.168.77.248
    >set type=mx
    >domain.com
    domain.com MX preference = 10, mail exchanger = mail.domain.com
    mail.domain.com internet address = 192.168.77.248
    >exit
    ***************************如果你的邮件服务器是用做公司内部邮件服务,不对外提供服务,此处可略过。************************

    2.3 确认系统环境
    确认下面的软件是否已经安装:
    rpm -q httpd php php-mysql mysql mysql-server mysql-devel gdbm gdbm-devel openssl openssl-devel stunnel krb5-devel

    2.4 设置防火墙
    安装完系统后,修改/etc/httpd/conf/httpd.conf,使web服务正常启用,为mysql添加root用户的密码。如果设置了防火墙,要打开如下端口:
    Outbound ports (tcp)
    25 - SMTP
    110 - POP
    143 - IMAP
    783 - Spamassassin
    993 - IMAPS
    Inbound Ports (tcp)
    22-SSH
    25 - SMTP
    80 - HTTP
    110 - POP services
    143 - IMAP
    443 - HTTPS
    783 - Spamassassin
    993 - IMAPS

    *****************************************************安装MySQL***************************************************
    添加MySQL用户
    useradd -M -o -r -d /var/lib/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql
    tar -xzf mysql-4.0.25.tar.gz
    cd mysql-4.0.25
    ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql --with-mysqld-user=mysql --with-charset=gb2312 --with-extra-charsets=all --with-unix-socket-path=/var/lib/mysql/mysql.sock
    make
    make install
    cp support-files/my-huge.cnf /etc/my.cnf (视内存大小选择合适的文件)
    cp support-files/mysql.server /etc/init.d/mysqld
    cd /etc/init.d/
    chmod 777 mysqld
    cd /etc/rc.d/rc3.d/
    ln -s ../init.d/mysqld S99mysqld
    /usr/local/mysql/bin/mysql_install_db
    chmod -R 755 /var/lib/mysql
    chown -R mysql:mysql /var/lib/mysql
    service mysqld start
    添加链接(进行数据库操作直接输入命令就可以,不用进入/usr/local/mysql/bin/了
    ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
    ln -s /usr/local/mysql/bin/mysql /usr/bin
    设置mysql root口令:
    mysqladmin -u root password edpmis
    ln -s /usr/local/mysql/lib/mysql /usr/lib/
    ln -s /usr/local/mysql/include/mysql /usr/include/
    cp /usr/local/mysql/lib/mysql/libmysqlclient.so.12 /usr/lib/
    这样在编译类似PHP,Vpopmail等软件时可以不用指定mysql的库文件
    mysql的头文件和库文件分别在/usr/include/mysql和/usr/lib/mysql。
    ***********************************************************************************************************************

    卸载已有的邮件系统,确认没有SMTP/POP/IMAP服务在运行:
    /etc/init.d/sendmail stop
    netstat -na | grep 25
    netstat -na | grep 110
    netstat -na | grep 143
    service sendmail stop
    删除已有的SMTP/POP/IMAP软件:
    rpm -e --nodeps sendmail

    些篇文档所使用的软件清册如下:
    qmail – 本文的主角,世界上使用最广的邮件系统之一。此处使用的是netqmail-1.05的补丁集和shupp.org的Toaster 7.0运行脚本
    ucspi-tcp - ucspi-tcp软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序
    daemontools - 是inetd和winetd的代替品,用它来监听qmail-send,qmail-smtpd,qmail-pop3d
    Vpopmail - 一个以qmail为基础的虚拟域管理包,其允许在一个IP地址添加多个虚拟域
    iGenus -大麻兄的作品,PHP编写的Webmail
    iGenus_Admin -通过WEB添加域和帐号
    Courier-imap -此邮件系统的IMAP模块
    ezmlm – 一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置
    autorespond – 自动回复程序,可以很好的与qmailadmin配合使用
    qmailadmin – 通过WEB管理vpopmail域的极好工具
    vqadmin – 通过WEB添加域
    SpamAssassin – 垃圾邮件防止,中文垃圾邮件清理就靠它了
    Clamav - 一个免费的杀毒软件,此邮件系统的杀毒模块
    MailDrop – 邮件过滤工具,比较难以使用,但是值得学会它
    qmail-scanner – 一个扫描邮件队列的插件,其调用Clamav和SpamAssassin进行清除邮件病毒和垃圾邮件的动作
    qmailanalog – 分析难以理解的qmail日志,并每晚给出报告
    isoqlog - 一个qmail日志分析工具,可以分析和统计qmail的运行日志,并生成漂亮的HTML格式的报表
    MRTG - 多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具 

    那么下面让我们开始安装必须的软件:
    #创建/home/pkg/目录
    mkdir /home/pkg
    cd home
    ####此安装指南中所使用的软件最好放在 /home/pkg/

    *****************************************************************************************************************
    #解压缩netqmail-1.05.tar.gz
    chmod 755 -R pkg
    cd pkg
    tar -xzf netqmail-1.05.tar.gz
    cd netqmail-1.05
    ./collate.sh
    *********注意:./collate.sh这一步不要忘***********

    ***********************************************************安装qmai******************************************************
    1.安装daemontools
    daemontools是一个收集管理UNIX进程的工具.用它来监听qmail-send,qmail-smtpd,qmail-pop3d.
    #安装:
    cd /home/pkg
    tar -zxvf daemontools-0.76.tar.gz
    cd admin/daemontools-0.76
    patch -Np1 < /home/pkg/netqmail-1.05/other-patches/daemontools-0.76.errno.patch
    package/install
    # 验证daemontools已经正常运行:
    sleep 5                          //正常情况下没有任何显示
    ps ax | grep svscan
    提示:
    ——————————————————————————————————————————————————————
    25243 ?        S      0:00 /bin/sh /command/svscanboot
    25245 ?        S      0:00 svscan /service
    25249 pts/1    S      0:00 grep svscan
    ———————————————————————————————————————————————————————


    2.安装ucspi-tcp
    ucspi-tcp软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序。TcpServer是一个比inetd安全性更好的选择。
    它内建有基于规则的连接控制,能完善地在达到预定义的最大系统负载时将连接推迟,这点比 inetd好。Tcpserver也被推荐与qmail一同使用,
    因为它们是同一个作者编的程序。
    #安装:
    cd /home/pkg
    tar zxvf ucspi-tcp-0.88.tar.gz
    cd ucspi-tcp-0.88
    patch -p1 < ../ucspi-tcp-0.88.errno.patch
    make
    make setup check
    ps ax | grep tcpserver

    3.安装qmail
    ************************************************************************************
    这个toaster补丁,是下面这几个补丁的组合:
    smtp auth (SMTP认证)
    spf (发信人DNS检查)
    qmail-queue (如果要使用病毒扫描引擎则需要这个补丁)
    maildir++ patch
    support oversize dns packets (not necessary if you use dnscache)
    chkuser (检查本地vpopmail用户表,信头的语法,这个补丁需要在安装vpopmail后被安装。)
    spam throttle
    qregex (匹配badmailfrom和badmailto文件里的规则)
    big concurrency (set the spawn limit above 255)
    **************************************************************************************
    #创建所需要的用户
    mkdir /var/qmail
    groupadd nofiles
    useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin
    useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin
    useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin
    useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin
    groupadd qmail
    useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin
    useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin
    useradd qmails -g qmail -d /var/qmail -s /sbin/nologin
    #顺便添加vpopmail用户
    groupadd vchkpw -g 89
    useradd vpopmail -u 89 -g vchkpw
    #准备安装qmail
    cd /home/pkg
    tar -xzf toaster-scripts-0.7.tar.gz
    cd netqmail-1.05/netqmail-1.05/
    ***************************************************************************************************************************
    # 搜索函数straynewline中的451改为553
    vi qmail-smtpd.c
    # 当你的服务器收到无效格式的邮件时,会发送:"I am not going to accept that message at the moment,you can try again later",
    #对方服务器收到后,几秒钟后又会发送同样的邮件给你,造成多次的重复。改为553后,你的服务器将直接发送:
    "I am not going to accept that message,don't try sending it again.",告诉对方的服务器不要再发这封无效的信件。
    void die_alarm() { out("451 超时. (#4.4.2)\r\n"); flush(); _exit(1); }
    void die_nomem() { out("421 内存溢出. (#4.3.0)\r\n"); flush(); _exit(1); }
    void die_control() { out("421 无法读取控制文件. (#4.3.0)\r\n"); flush(); _exit(1); }
    void die_ipme() { out("421 无法判断发信IP地址. (#4.3.0)\r\n"); flush(); _exit(1); }
    void straynewline() { out("553 如有疑问请发邮件到: yuren777@hotmail.com\r\n"); flush(); _exit(1); }
    void err_bmf() { out("553 对不起您的邮件地址在我的黑名单里. (#5.7.1)\r\n"); }
    void err_nogateway() { out("553 对不起,您所发送的邮件不在服务器允许的范围内. (#5.7.1)\r\n"); }
    void err_unimpl() { out("502 命令执行失败. (#5.5.1)\r\n"); }
    void err_syntax() { out("555 语法错误. (#5.5.4)\r\n"); }
    out("214 WelCome To: http://www.domail.com\r\n");
    out("354 继续.\r\n");
    if (databytes) if (!bytestooverflow) { out("552 对不起,邮件大小超出服务器允许接受的范围. (#5.3.4)\r\n"); return; }
    ***************************************************************************************************************************
    # RedHat/Fedora用户可能需要为TLS补丁链接一个include文件
    # 输入如下命令:
    ln -s /usr/kerberos/include/com_err.h /usr/include/
    # 删除sendmail的链接
    rm -rf /usr/sbin/sendmail
    #qmail编译安装
    make
    make setup check
    ************************注:qmail的补丁在vpopmail安装之后再打。******************************
    # 用你自己的主机名代替下面的mail.tyler110.com
    ./config-fast mail.acasiasia.com
    #设置管理员的邮箱地址。
    #发往root/postmaster/mailer-daemon地址的邮件将会由定义的管理员邮箱接收。将如下的“admin@domain.com"替换成你的管理员邮箱。
    cd /var/qmail/alias
    echo "admin@acasiasia.com" > .qmail-postmaster
    echo "admin@acasiasia.com" > .qmail-mailer-daemon
    echo "admin@acasiasia.com" > .qmail-root
    chmod 644 /var/qmail/alias/.qmail*
    #开启SPF设置                                   ????????????????????????
    echo ./Maildir/ >/var/qmail/control/defaultdelivery
    echo 3 > /var/qmail/control/spfbehavior
    #添加qmail的帮助手册
    echo MANPATH /var/qmail/man >> /etc/man.config
    ****************为qmail服务建立监控目录和日志文件:*****************
    mkdir -p /var/qmail/supervise/qmail-send/log
    mkdir -p /var/qmail/supervise/qmail-smtpd/log
    mkdir -p /var/qmail/supervise/qmail-pop3d/log
    mkdir -p /var/qmail/supervise/qmail-pop3ds/log
    cp /home/pkg/toaster-scripts-0.7/send.run /var/qmail/supervise/qmail-send/run
    cp /home/pkg/toaster-scripts-0.7/send.log.run /var/qmail/supervise/qmail-send/log/run
    cp /home/pkg/toaster-scripts-0.7/smtpd.run /var/qmail/supervise/qmail-smtpd/run
    cp /home/pkg/toaster-scripts-0.7/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run
    cp /home/pkg/toaster-scripts-0.7/pop3d.run /var/qmail/supervise/qmail-pop3d/run
    cp /home/pkg/toaster-scripts-0.7/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run
    cp /home/pkg/toaster-scripts-0.7/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run
    cp /home/pkg/toaster-scripts-0.7/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run
    echo 20 > /var/qmail/control/concurrencyincoming
    chmod 644 /var/qmail/control/concurrencyincoming
    chmod 755 /var/qmail/supervise/qmail-send/run
    chmod 755 /var/qmail/supervise/qmail-send/log/run
    chmod 755 /var/qmail/supervise/qmail-smtpd/run
    chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
    chmod 755 /var/qmail/supervise/qmail-pop3d/run
    chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
    chmod 755 /var/qmail/supervise/qmail-pop3ds/run
    chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run
    mkdir -p /var/log/qmail/smtpd
    mkdir -p /var/log/qmail/pop3d
    mkdir -p /var/log/qmail/pop3ds
    chown -R qmaill /var/log/qmail
    *********************************************启动脚本***********************************************
    cd /home/pkg
    cp toaster-scripts-0.7/rc /var/qmail/rc
    chmod 755 /var/qmail/rc
    cp toaster-scripts-0.7/qmailctl /var/qmail/bin/
    chmod 755 /var/qmail/bin/qmailctl
    ln -s /var/qmail/bin/qmailctl /usr/bin
    ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
    rm -rf /usr/lib/sendmail
    ln -s /var/qmail/bin/sendmail /usr/lib/sendmail


    ********************************** 用daemontools来启动qmail-send和qmail-smtpd****************************
    ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
    #命令:
    # 启动,停止,重启,查看队列等
    qmailctl start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help

    # 检查服务
    netstat -an | grep 25
    ps -ef | grep qmail
    ps -efl | grep "service errors" | grep -v grep
    ******************************************************日志********************************************************

    /var/log/maillog
    /var/log/qmail/current
    /var/log/qmail/pop3d/current
    /var/log/qmail/pop3ds/current
    /var/log/qmail/smtpd/current

    ***************我建议重新回顾一下刚才我们所做的步骤以熟悉对qmail的安装. 下面我们将开始vpopmail的安装.*************

    ************************************************安装vpopmail************************************************

    #vpopmail是一个以qmail为基础的虚拟域管理包;其允许在一个IP地址添加多个虚拟域;并且可以不需要使用系统帐号做邮件帐号。
    #创建目录:
    mkdir -p /home/vpopmail/etc
    *********************************** 设置默认域,红色部份改成你要设置的域。********************************************
    echo "acasiasia.com" > /home/vpopmail/etc/defaultdomain
    **********************************************设置smtp规则,关闭open relays*******************************************
    echo '127.0.0.1:allow,RELAYCLIENT=""' > /home/vpopmail/etc/tcp.smtp
    cd /home/vpopmail/etc ; tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

    ***********************设置MySQL信息,第一个vpopmail是帐号,edpmis为密码,第二个vpopmail是数据库*********************

    echo "localhost|0|vpopmail|edpmis|vpopmail" > /home/vpopmail/etc/vpopmail.mysql
    chmod 640 /home/vpopmail/etc/vpopmail.mysql
    chown -R vpopmail.vchkpw /home/vpopmail/etc


    ***********************************************在MySQL里添加vpopmail的帐号********************************************
    mysql -uroot -pedpmis
    CREATE DATABASE vpopmail;
    GRANT select,insert,update,delete,create,drop ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY 'edpmis';
    FLUSH PRIVILEGES;
    QUIT

    **********************************************************************************************************************

    +++++开始安装VPOPMAIL++++++

    cd /home/pkg/
    tar zxvf vpopmail-5.4.10.tar.gz
    cd vpopmail-5.4.10
    *********** 带数据库支持*************
    ./configure --enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib/mysql --disable-roaming-users --enable-logging=p --disable-passwd --enable-clear-passwd --disable-domain-quotas --enable-auth-module=mysql --enable-auth-logging --enable-sql-logging --disable-valias --disable-mysql-limits --enable-learn-passwords
    make
    make install-strip
    ***********************************************************************************************************************
    #管理:
    echo 'export PATH=$PATH:/home/vpopmail/bin' >> /etc/profile
    source /etc/profile
    **************************添加域,红色部份前面是域名,后面是管理员(postmaster)密码*************************************

    vadddomain tyler110.com edpmis

    ********************************************添加用户,红色部份为注解,不用输入*****************************************

    vadduser -q 10485760S tyler@tyler110.com 123456
    vmoduser -c 熊开想 tyler@tyler110.com

    ************************************************** 设置邮箱容量达到90%的警告信息*************************************

    vi /home/vpopmail/domains/.quotawarn.msg
    From: 邮箱管理员
    Reply-To: postmaster@acasiasia.com
    To: 邮箱用户
    Subject: 邮箱空间警告
    Mime-Version: 1.0
    Content-Type: text/html; charset=gb2312
    Content-Transfer-Encoding: base64
    您的邮箱空间已经达到90%.如果想继续使用,请删除一些信件.
    如果需要帮助,请联系邮箱管理员:
    Email : postmaster@acasiasia.com


    *********************************************** 设置邮箱已满的警告信息************************************************

    echo "邮件被拒绝,用户的邮箱空间已满." > /home/vpopmail/domains/.over-quota.msg

    #启动脚本:
    cp /home/pkg/toaster-scripts-0.7/vpopmailctl /var/qmail/bin
    ln -s /var/qmail/bin/vpopmailctl /usr/bin
    chmod 755 /var/qmail/bin/vpopmailctl

    **************************************************现在打上qmail的补丁***************************************************

    cd /home/pkg/netqmail-1.05/netqmail-1.05
    ln -s /usr/kerberos/include/com_err.h /usr/include/
    ln -s /usr/kerberos/include/profile.h /usr/include/
    ln -s /usr/kerberos/include/krb5.h /usr/include/
    bunzip2 -c /home/pkg/qmail-toaster-0.7.2.patch.bz2 | patch -p0
    make clean
    make
    qmailctl stop
    make setup check
    chown -R vpopmail:vchkpw /var/qmail/spam
    *****************************************************创建SSL Key**************************************************

    make cert
    #按提示输入公司信息
    [root@mail netqmail-1.05]# make cert
    Generating a 1024 bit RSA private key
    .............++++++
    ...............++++++
    writing new private key to '/var/qmail/control/servercert.pem'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [GB]:CN
    State or Province Name (full name) [Berkshire]:GD
    Locality Name (eg, city) [Newbury]:SZ
    Organization Name (eg, company) [My Company Ltd]:Domain
    Organizational Unit Name (eg, section) []:Domain
    Common Name (eg, your name or your server's hostname) []:domain.com
    Email Address []:tyler@tyler110.com

    make tmprsadh

    #注:这里可能要多等一会

    chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem

    # 用"crontab -e"在crontab里增加下面这条,每天晚上更新temp keys    ????????????????????
    01 01 * * * /var/qmail/bin/update_tmprsadh > /dev/null 2>&1
    #起动qmail
    qmailctl start
    # 用daemontools来启动qmail-pop3d和qmail-pop3ds
    ln -s /var/qmail/supervise/qmail-pop3d /service
    ln -s /var/qmail/supervise/qmail-pop3ds /service
    #命令:启动,停止,重启,查看队列等

    vpopmailctl start|stop|restart|stat|pause|cont|help

    # 检查服务
    netstat -an | grep 110
    ps -ef | grep qmail
    ps -efl | grep "service errors" | grep -v grep

    安装选项参考:
    vpopmail 5.4.10
    Current settings
    -------------------------------------------------------------------------------------------------------------
    vpopmail directory = /home/vpopmail
    uid = 89
    gid = 89
    roaming users = OFF --disable-roaming-users (default)
    password learning = ON --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)
    sql logging = ON --enable-sql-logging
    mysql limits = OFF --disable-mysql-limits (default)
    MySQL valias = OFF --disable-valias (default)
    auth inc = -I/usr/include/mysql
    auth lib = -L/usr/lib/mysql -lmysqlclient -lz -lm
    system passwords = OFF --disable-passwd (default)
    pop syslog = show failed attempts with clear text password
    --enable-logging=p
    auth logging = ON --enable-auth-logging (default)
    all domains in one SQL table = --enable-many-domains (default)
    --------------------------------------------------------------
    ***************************************************POP3和SMTP测试**********************************************************


    用outlook测试qmail的smtp和pop3是否正常,注意由于vpopmail支持虚拟域名,所以在outlook中设置邮件帐号时,用户名后要加上域名,
    demo@demo.com。smtp是带认证的,在outlook中也要作相应设置。建议先测试正常后再进行下一步安装。如果qmail出现问题,
    可查看mysql中的vpopmail数据库,/var/log下的mysqld和maillog日志记录,这样容易很快找出问题。

    ***************************************安装iGenus(可选)TOP******************************************************** 

    iGENUS 不是一套独立的邮件系统,只是一个 Webmail 接口,需要配合 qmail+vpopmail+Mysql 使用。iGENUS 是由 PHP 写成,采用直接对
    qmail 的 Maildir 进行读写操作,因而比 IMAP/POP 方式更快一点。
    参考:http://www.igenus.org
    #安装:
    cd /home/pkg
    tar zxvf igenus_2.0.2_20040901_release.tgz -C /var/www/
    cd /var/www/
    rm -rf html/
    mv igenus html

    ************************************建temp文件夹*********************************************************

    mkdir /tmp/temp
    chmod -R 0755 /tmp/temp
    chown -R vpopmail:vchkpw /tmp/temp
    mkdir /home/netdisk
    chmod -R 0755 /home/netdisk
    chown -R vpopmail:vchkpw /home/netdisk
    chmod -R 0755 /var/www/html/
    chown -R vpopmail:vchkpw /var/www/html/

    ***************************************修改httpd.conf****************************************************

    vi /etc/httpd/conf/httpd.conf
    User vpopmail
    Group vchkpw
    DocumentRoot "/var/www/html/"
    AddDefaultCharset GB2312 //使默认页面为中文
    /etc/rc.d/init.d/httpd restart //重启apache,使修改生效
    **********************************************修改config_inc.php文件**************************************

    cd /var/www/html/config
    vi config_inc.php
    $CFG_BASEPATH = "/var/www/html/"; \\改成你安装的目录
    $CFG_MYSQL_HOST = 'localhost';
    $CFG_MYSQL_USER = 'vpopmail'; \\vpopmail访问mysql的帐号
    $CFG_MYSQL_PASS = 'xukixu'; \\vpopmail访问mysql的密码
    $CFG_MYSQL_DB = 'vpopmail'; \\数据库
    $CFG_TEMP = "/tmp/temp"; \\删除$CFG_BASEPATH,并修改路径

    ************************************重新编制Mysql数据库表格*************************************
    1.删除之前创建的域名

    vdeldomain tyler110.com
    #编辑数据库:
    mysql -uroot -pedpmis
    use vpopmail;
    drop table lastauth;
    drop table vpopmail;
    quit;


    2.编辑/var/www/html/docs/iGENUS.sql
    vi /var/www/html/docs/iGENUS.sql
    # phpMyAdmin SQL Dump
    # version 2.5.3
    # http://www.phpmyadmin.net
    # Host: localhost
    # Generation Time: Jun 04, 2004 at 11:26 AM
    # Server version: 3.23.55
    # PHP Version: 4.3.0
    #
    # Database : `vpopmail`
    #
    # --------------------------------------------------------
    #
    # Table structure for table `address`
    #
    use vpopmail; //加入这一行
    CREATE TABLE `address` (
    `id` int(11) unsigned NOT NULL auto_increment,
    `pw_id` int(5) NOT NULL default '0',
    `name` varchar(64) NOT NULL default '',
    `email` varchar(128) NOT NULL default '',
    UNIQUE KEY `id` (`id`),
    KEY `pw_id` (`pw_id`)
    ) TYPE=MyISAM PACK_KEYS=1 ;
    # -----------------------------------------------------

    CREATE TABLE `vpopmail` (
    `pw_id` int(5) unsigned NOT NULL auto_increment,
    `pw_name` varchar(32) NOT NULL default '',
    `pw_domain` varchar(64) NOT NULL default '',
    `pw_passwd` varchar(40) NOT NULL default '',
    `pw_uid` int(11) default NULL,
    `pw_gid` int(11) default NULL,
    `pw_gecos` varchar(48) default NULL,
    `pw_dir` varchar(255) default NULL,
    `pw_shell` varchar(20) default NULL,
    `pw_clear_passwd` varchar(16) default NULL, \\加入这一行
    `createtime` timestamp(14) NOT NULL,
    PRIMARY KEY (`pw_id`),
    KEY `pw_name` (`pw_name`,`pw_domain`)
    ) TYPE=MyISAM PACK_KEYS=1 ;
    -------------------------------------------------------------------------------------------------------------

    #运行如下命令导入数据表
    mysql -uroot -pedpmis </var/www/html/docs/iGENUS.sql

    ***********************************设置igenus 定义允许上传下载的邮件的大小************************************
    #编辑/etc/php.ini
    vi /etc/php.ini
    max_execution_time=60
    memory_limit=20M
    post_max_size = 10M
    file_uploads=on
    upload_max_filesize=10M
    register_globals=On
    session.bug_compat_42=0
    session.bug_compat_warn=0
    sendmail_path = /var/qmail/bin/qmail-inject
    ********************************************************************************************************

    #编辑/etc/http/conf/httpd.conf
    vi /etc/httpd/conf/httpd.conf
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    DirectoryIndex index.php index.html
    NameVirtualHost *:80
    ServerName mail.tyler110.com
    DocumentRoot /var/www/html
    chmod 777 /var/lib/php/session/ -R
    *************************************************************************************************************
    #重启apache:

    service httpd restart

    #如果需要,用vadddomain和vadduser添加新域名和新用户。

    最后打开浏览器,输入http://mail.tyler110.com/,就可以访问网站了。
    *************************************************************************************************************
    *************************************************************************************************************
    *************************************************************************************************************
    *************************************************************************************************************

    第七节:安装iGenus_Admin(可选)
    一个基于Web的vpopmail域和帐号管理工具。
    #安装
    cd /home/pkg
    tar -xzvf igenus_admin_0.1.tgz -C /var/www/html/
    #设置
    ***********************************************************************************************************
    vi /var/www/html/admin/includes/config_inc.php
    /*-

    * iGENUS webmail
    *
    * Copyright (c) 1999-2002 by iGENUS Org.
    * All rights reserved.
    * Author: Wu Qiong
    *
    * $Id: config_inc.php,v 1.11 2004/03/23 13:59:12 wuqiong Exp $
    */
    if(!defined("INCLUDE_CONFIG_OK")) {
    define("INCLUDE_CONFIG_OK","TRUE");
    /* gid flags defind by vpopmail.h */
    // define('NO_PASSWD_CHNG',0x01);
    define('NO_POP', 0x02);
    define('NO_WEBMAIL', 0x04);
    // define('NO_IMAP', 0x08);
    // define('BOUNCE_MAIL', 0x10);
    // define('NO_RELAY', 0x20);
    // define('NO_DIALUP', 0x40);
    // define('V_USER0', 0x080);
    // define('V_USER1', 0x100);
    // define('V_USER2', 0x200);
    // define('V_USER3', 0x400);
    define('NO_SMTP', 0x800);
    // define('QA_ADMIN', 0x1000);
    $CFG_VPOPMAIL_HOST = "localhost";
    $CFG_VPOPMAIL_USER = "vpopmail"; \\改为你的帐号
    $CFG_VPOPMAIL_PASS = "xukixu"; \\改为你的密码
    $CFG_VPOPMAIL_DB = "vpopmail";
    $CFG_VPOPMAIL_TABLE = "vpopmail";
    $CFG_ADMIN_TABLE = "admin";
    $CFG_LAGESITE = true;
    $CFG_NUMOFPAGE = 20;
    $CFG_MAILBOX['inbox'] = ".";
    $CFG_MAILBOX['outbox'] = ".Outbox";
    $CFG_MAILBOX['draft'] = ".Draft";
    $CFG_MAILBOX['trash'] = ".Trash";
    $CFG_VPOPMAIL_PATH = "/home/vpopmail"; \\改为你的vpopmail安装目录 
    // $CFG_VPOPMAIL_PATH = "/home2/vpopmail";
    $CFG_SYSADMIN_NAME = "Admin";
    $CFG_SYSADMIN_PASSWD= '$1$GvmONIco$0SwBB.mEoP3KJ5Zda7ioV0';
    $CFG_SYSADMIN_PASSWD_FILE = $CFG_VPOPMAIL_PATH . "/etc/syspasswd.dat";
    $CFG_TIMEOUT = 600;
    $CFG_IGENUS_ADM = "iGENUS邮件系统管理";
    $CFG_TEMPLATE_PATH = "template/";
    }
    ?>

    #保存退出
    touch /etc/syspasswd.dat
    chown -R vpopmail.vchkpw /var/www/html
    chmod -R 755 /var/www/html
    #登录设置页面
    http://tyler110.com/admin/sys/
    用户:Admin密码Admin来登录.注意A要大写..这个管理帐号密码登录后可以改的

    登录后,首先点"更新数据库"你就会看见你的域名.然后点"编辑"把"登录权限该域管理员(Postmaster)有权登录进行用户管理"这一项打勾,确认后,就可以用
    http://tyler110.com/admin/
    来登录管理了。
    ***************************************************************************************************************************
    ***************************************************************************************************************************
    -------------------------------------------第八节:安装courier-imapTOP------------------------------------------------------
    Courier-IMAP支持IMAP/SIMAP访问
    courier-imap 从 4版本开始,把 courier-authlib 独立出来了,需要先安装 courier-authlib. 具体步骤:
    ***************************************************************************************************************************
    cd /home/pkg
    tar -xjvf courier-authlib-0.55.tar.bz2
    cd courier-authlib-0.55
    ./configure --prefix=/usr/local --exec-prefix=/usr/local --with-authvchkpw --without-authldap --without-authmysql --disable-root-check --with-ssl --with-authchange pwdir=/usr/local/libexec/authlib --with-redhat
    make
    make install
    make install-configure
    #修改设置文件:/usr/local/etc/authlib/authdaemonrc,去掉不需要的认证模式,只留vchkpw方式,然后认证进程改成2个
    #完成后启动它:
    /usr/local/sbin/authdaemond start
    #需要把这个脚本放到/etc/init.d, 然后在/etc/rc3.d 或/etc/rc5.d做一个符号连接,以便系统启动时自动运行。
    #启动后,在内存中可以看到2个authlib进程:
    ps -aef |grep authlib
    root 20108 20107 0 Jan28 ? 00:00:00 /usr/local/libexec/courier-authlib/authdaemond
    root 20109 20108 0 Jan28 ? 00:00:00 /usr/local/libexec/courier-authlib/authdaemond
    #这里可以想办法把运行身份改成vpopmail,毕竟用root运行,如果出现问题影响范围会大很多。
    #测试是否正常:
    运行/usr/local/sbin/authtest红字为输入内容,后面的1121221应该是pop3密码,后面部分应该是命令结果)
    authtest xukixu@domain.com 1121221
    Authenticated: xukixu@domain.com (uid 509, gid 509)
    Home Directory: /var/vpopmail/domains/domain.com/xukixu
    Maildir: (none)
    Quota: (none)
    Encrypted Password: $1$LJjMeeeeqqeqF9VWUywtLV/O5ciqeg.
    Cleartext Password: xukixu
    Options: disablewebmail=0,disablepop3=0,disableimap=0

    #出现上面的提示就是说authlib运行正常

    #下面来安装courier-imap
    *************************************************************************************************************************
    cd /home/pkg
    tar -xjf courier-imap-4.0.2.tar.bz2
    cd courier-imap-4.0.2

    # 作为vpopmail用户进行安装

    chown -R vpopmail:vchkpw ../courier-imap-4.0.2
    su vpopmail
    ./configure --with-redhat

    # 注:Redhat用户需要使用"--with-redhat"选项
    *********************************************************************************************************************
    make
    exit
    make install-strip
    make install-configure
    cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imap
    chmod 755 /etc/rc.d/init.d/courier-imap
    chkconfig --add courier-imap
    ***************************************************************************************************************

    #配置:
    # 修改文件/usr/lib/courier-imap/etc/authdaemonrc,如果没有,则链接/usr/local/etc/authlib/authdaemonrc
    authmodulelist="authvchkpw"
    # 修改文件/usr/lib/courier-imap/etc/imapd
    IMAPDSTART=YES
    # 修改文件/usr/lib/courier-imap/etc/imapd-ssl
    IMAPDSSLSTART=YES
    # 修改文件/usr/lib/courier-imap/etc/imapd.cnf
    CN=tyler110.com
    emailAddress=postmaster@tyle110.com
    # 修改文件/usr/lib/courier-imap/etc/pop3d.cnf
    CN=tyler110.com
    emailAddress=postmaster@tyler110.com
    **************************************************************************************************************

    #启动:
    /etc/rc.d/init.d/courier-imap start
    #使用outlook测试一下IMAP是否正常

    ********************************************安装SquirrelMail(可选)*********************************************
    SquirrelMail 是一个PHP编写的IMAP客户端,在安装SquirrelMail之前,要确保你的IMAP正常运行。
    **************************************************************
    #安装
    cd /home/pkg
    tar -xzvf squirrelmail-1.4.4.tar.bz
    cd squirrelmail-1.4.4
    cd plugins
    tar -xzf ../../quota_usage-1.3-1.2.7.tar.gz
    cp quota_usage/config.php.sample quota_usage/config.php
    cd ../
    ./configure
    **************************************************************
    # 你将要设置如下选项

    #选择“2. Server Settings”=>“A. Update IMAP Settings”=>“8. Server software”改成“courier”;回到主菜单,
    选择“4.General Options”=>“1. Data Directoryand”改成“/var/www/data/”;再退回主菜单,选择“8. Plugins”=>添加你希望用到的插件。
    回到主菜单,选择“10. Languages”,将“ Default Language”改成“zh_CN”,“Default Charset”改成“GB2312”。保存退出。

    ************************************************************************************************************************
    mv data /var/www/
    chown -R vpopmail.vchkpw /var/www/data
    cd ../
    mv squirrelmail-1.4.4 /var/www/html/squirrelmail 
    **************************************************************************************************************************
    #登录http://tyler110.com/squirrelmail 验证是否安装成功。

    ******************************************安装SqwebMail(可选)**************************************************

     

    Sqwebmail同SquirrelMail一样,也是一个基于IMAP客户端的webmail,在安装它之前,同样要确保IMAP服务运行正常.


    安装sqwebmail后,如果希望在webmail上直接修改密码,则需要安装如下两个RPM包:
    cd /home/pkg
    rpm -Uvh expect-5.42.1-1.i386.rpm tcl-8.4.7-2.i386.rpm

    #下面开始安装sqwebmail

    cd /home/pkg
    tar -xjvf sqwebmail-5.0.1.tar.bz2
    cd sqwebmail-5.0.1

    ./configure --enable-webpass=vpopmail --enable-softtimeout=300 --enable-autopurge=10 --enable-maxpurge=30 --enable-mimecharset=gb2312 --with-maxargsize=5000000 --with-maxformargsize=5000000 --with-maxmsgsize=5000000 --without-ispell --without-authshadow --without-authmysql --without-authldap --without-authuserdb --without-authpwd --without-authpam --with-authvchkpw --without-authdaemon --enable-unicode --enable-hardtimeout=14400 --enable-softtimeout=3600 --enable-webpass=yes  

    make configure-check
    umask 220
    make
    make check
    make install-strip
    make install-configure

    #完成后,启动脚本在/usr/local/sqwebmail/libexec/sqwebmaild.rc,要把它放到/etc/init.d,并且让他启动时运行

    /usr/lib/sqwebmail/libexec/sqwebmaild.rc start
    su -c "/usr/lib/sqwebmail/share/sqwebmail/cleancache.pl"  

    cp /usr/lib/sqwebmail/libexec/sqwebmaild.rc /etc/init.d/sqwebmaild
    chmod 755 /etc/init.d/sqwebmaild  

    ln -s /etc/init.d/sqwebmaild /etc/rc.d/rc3.d/S89sqwebmaild
    ln -s /etc/init.d/sqwebmaild /etc/rc.d/rc5.d/S89sqwebmaild  

    #用"crontab -e"在crontab里增加下面这条,定时清除cache

    crontab -e

    */30 * * * *su -c "/usr/lib/sqwebmail/share/sqwebmail/cleancache.pl"

    #登录http://tyler110.com/cgi-bin/sqwebmail 验证是否安装成功。


    ********************************************************安装Wmail(可选)****************************************************

    Wmail其实就是sqwebmail,只不过作者进行了一下汉化和修改了HTML模板而已.
    我在这里就不多说了!自己搞定吧!


    **********************************************安装Autorespond&EzmlmTOP**********************************************

     

    autorespond是一个自动回复工具,可以很好的与qmailadmin配合使用

    #安装:
    cd /home/pkg
    tar -xvzf autorespond-2.0.5.tar.gz
    cd autorespond-2.0.5
    make
    make install

    ***********************************************************************************************************************

    *******************************************************安装Ezmlm ************************************************

       exmlm是一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置

    #安装:
    ************************************************************************************************
    cd /home/pkg
    tar -xvzf ezmlm-0.53.tar.gz
    tar -xvzf ezmlm-idx-0.42.tar.gz
    cp -rf ezmlm-idx-0.42/* ezmlm-0.53/
    cd ezmlm-0.53
    patch < idx.patch
    chmod u+x makelang
    make
    make man
    #################汉字GB2312支持
    make ch_GB
    make setup
    ************************************************************************************************


    ************************************************安装qmailadmin************************************************
    qmailadmin除了不能添加删除虚拟域外,几乎可以完成所有的虚拟域管理

    #安装:
    ************************************************************************************************
    cd /home/pkg
    tar -xvzf qmailadmin-1.2.3.tar.gz
    cd qmailadmin-1.2.3
    ./configure --enable-htmldir=/var/www/html --enable-cgibindir=/var/www/cgi-bin --enable-vpopuser=vpopmail --enable-autoresponder-bin=/usr/bin --disable-ezmlm-mysql --enable-maxusersperpage=20 --enable-maxaliasesperpage=20 --enable-modify-quota --enable-domain-autofill
    make
    make install-strip
    cd /usr/local/share/qmailadmin/lang
    mv en en.bak
    cp zh-cn en

    安装选项参考:
    qmailadmin 1.2.3
    Current settings
    ---------------------------------------
    cgi-bin dir = /var/www/cgi-bin
    html dir = /var/www/html
    image dir = /var/www/html/images/qmailadmin
    image URL = /images/qmailadmin
    template dir = /usr/local/share/qmailadmin
    qmail dir = /var/qmail
    vpopmail dir = /home/vpopmail
    autorespond dir = /usr/bin
    ezmlm dir = /var/qmail/bin/ezmlm
    ezmlm idx = yes
    mysql for ezmlm = no
    help = no
    modify quota = yes
    domain autofill = yes
    modify spam check = no
    ******************************************************************************************************


    ************************************************安装Vqregister(可选)************************************************
    vqregister是vqsignup的升级版本,提供qmail邮箱注册功能。
    #解压缩
    cd /home/pkg
    tar zxvf vqregister-2.6.tar.gz
    #进入vqregister-2.6安装目录
    cd vqregister-2.6
    #修改安装配置文件Makefile
    vi Makefile

    #找到这几行
    DEFS = -I$(VDIR)/include -I/usr/local/mysql/include
    LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/mysql/lib/mysql -lmysqlclient
    INSTALL_DIR = /usr/local/apache/cgi-bin/vqregister

    #将它们改成实际路径,这里是

    DEFS = -I$(VDIR)/include -I/usr/include/mysql
    LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/lib/mysql -lmysqlclient
    INSTALL_DIR = /var/www/cgi-bin/vqregister

    #编译安装
    make all install clean
    #安装完成后需要编辑vqregister的配置文件
    cd /var/www/cgi-bin/vqregister
    vi vqregister.conf
    #修改下面几项

    # 设置管理信息
    AdminEmail postmaster@tyler110.com
    # 设置邮箱使用的域名
    AllowDomain tyler110.com
    #RegisterUser vQregister

    # 设置数据库选项
    DB_Name vpopmail
    DB_User vpopmail
    DB_Password xukixumysql

    #其它项目可根据注释修改,不改也行,直接保存即可。
    #可以根据需要修改vqregister.email,此文件为用户注册后发送给用户的邮件。
    #/var/www/cgi-bin/vqregister/html中的文件为vqregister的网页模板,可根据需要汉化和修改。
    #测试vqregister:
    #在浏览器地址栏输入http://tyler110.com.com/cgi-bin/vqregister/vqregister.cgi ,按要求添入注册信息,提交后显示注册成功信息,证明你的vqregister安装成功!如果出现错误,请按提示检查注册信息或检查vqregister.conf文件。

    **************************************************************************************************************************

    安装vQadmin
    vqadmin是一个基于web 的控制通道. 它允许系统管理员可以执行root用户才能进行的操作.

    #安装
    cd /home/pkg
    tar -zxf vqadmin-2.3.6.tar.gz
    cd vqadmin-2.3.6
    vi db_owner.c
    static const char *host="localhost";
    static const char *user="vpopmail";
    static const char *passwd="edpmis"; /* NULL for no password */
    static const char *db="vpopmail";
    ./configure
    make
    make install
    #现在我们需要将下面几行添加到httpd.conf文件中:
    vi /etc/httpd/conf/httpd.conf
    deny from all
    Options ExecCGI
    AllowOverride AuthConfig
    Order deny,allow
    #保存文件并退出.
    cd /var/www/cgi-bin/vqadmin
    chown nobody .htaccess
    chmod 600 .htaccess

    # 创建一个管理帐号及密码
    htpasswd -bc /etc/httpd/conf/vqadmin.passwd admin(帐号) adminpass(密码)
    chown vpopmail.vchkpw /etc/httpd/conf/vqadmin.passwd
    chmod 644 /etc/httpd/conf/vqadmin.passwd
    chown -R vpopmail.vchkpw /var/www/cgi-bin

    #编辑.htaccess
    vi .htaccess
    AuthType Basic
    AuthUserFile /etc/httpd/conf/vqadmin.passwd
    AuthName vQadmin
    require valid-user
    satisfy any

    #重启Apache
    service httpd restart

    在你的浏览器上测试一下安装结果:

    http://www.tyler110.com/cgi-bin/vqadmin/vqadmin.cgi

    **************************************************************************************************************************

     *****************************************        安装SpamAssassin          *****************************************

    Spam是一个让人讨厌的字眼. 大部分的人都不喜欢它. 如果你想保护自己免受spam, 你就需要安装SpamAssassin.
    因我在安装系统的时候已经选择好了SpamAssassin。现在我们将其升级到最新版:
    cd /home/pkg
    rpm -Uvh spamassassin-3.0.2-2.1.el3.rf.i386.rpm

    还需要安装另外一个软件包:
    rpm -Uvh perl-Razor-Agent-2.40-2.i386.rpm
    #修改起动脚本使spamassassin支持vpopmail
    #修改如下一行:
    vi /etc/init.d/spamassassin
    SPAMDOPTIONS="-d -c -m5 -H -x -u spamd -v"
    vi /etc/sysconfig/spamassassin
    SPAMDOPTIONS="-d -c -m5 -H -x -u spamd -v"
    下图是我在安装SpamAssassin时所列出的perl模块,SpamAssassin所要用到的一些Perl模块是:
    perl-Time-HiRes
    perl-Digest-SHA1
    perl-HTML-Parser
    perl-DB_File
    perl-HTML-Tagset
    perl-Razor-Agent
    perl-DBI
    perl-Net-DNS
    perl-URI
    这些模块请安装上。
    #spamassassin的过滤模板在/etc/mail/spamassassin/local.cf,修改为:
    vi /etc/mail/spamassassin/local.cf
    required_score 5.0
    rewrite_header Subject ********SPAM********
    report_safe 1
    use_bayes 1
    skip_rbl_checks 0
    ok_languages zh en
    ok_locales en ko
    score HEAD_ILLEGAL_CHARS 0
    score SUBJ_ILLEGAL_CHARS 0
    score DATE_IN_PAST_03_06 0
    score UPPERCASE_25_50 0
    score UPPERCASE_50_75 0
    score UPPERCASE_75_100 0
    score X_MSMAIL_PRIORITY_HIGH 0
    score X_PRIORITY_HIGH 0
    score TO_TXT 100
    score RATWARE_HASH_2 100
    score RATWARE_HASH_2_V2 100
    score BAYES_99 0.1
    score BAYES_80 0.1
    score BAYES_60 0.1
    score FROM_ILLEGAL_CHARS 0.1
    score MIME_BASE64_TEXT 0.1
    score NO_RDNS_DOTCOM_HELO 0.1
    score CHINA_HEADER 0.1
    score NO_REAL_NAME 0.2
    score HTML_MESSAGE 0.2
    score MIME_HTML_ONLY 0.2
    score MIME_HTML_ONLY_MULTI 0.2
    score FORGED_MUA_OUTLOOK 0.2
    score FORGED_HOTMAIL_RCVD 0.2
    score FORGED_OUTLOOK_TAGS 0.2
    score MAILTO_TO_SPAM_ADDR 0.2

    #黑白名单
    whitelist_from *@domain.com

    # ---------------------------------------------------------------------------

    # 使用中国反垃圾邮件联盟的CBL/CDL
    # URL: http://www.anti-spam.org.cn/
    header RCVD_IN_CBL eval:check_rbl('cbl', 'cbl.anti-spam.org.cn.')
    describe RCVD_IN_CBL Received via a relay in cbl.anti-spam.org.cn
    tflags RCVD_IN_CBL net
    header RCVD_IN_CDL eval:check_rbl('cdl-notfirsthop', 'cdl.anti-spam.org.cn.')
    describe RCVD_IN_CDL CDL: dialup sender did non-local SMTP
    tflags RCVD_IN_CDL net
    #SCORE
    score RCVD_IN_CBL 4.0
    score RCVD_IN_CDL 3.0

    #运行ntsysv,将spamassassin设定的为开机运行

    #使用CCERT 中文垃圾邮件过滤规则集Chinese_rules.cf
    wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf

    #启动SpamAssassin
    service spamassassin start

    #定期自动更新中文反垃圾邮件规则
    crontab –e
    #加入
    0 0 1 * * wget -N -P /usr/share/spamassassin http://www.ccert.edu.cn/spam/sa/Chi....d/spamassassin restart;/etc/init.d/spamassassin restart;

    #建立SpamAssassin的学习系统
    sa-learn --sync -D -p user_prefs
    #查看自学习的数据信息
    sa-learn --dump all
    #查看调试信息
    spamassassin --lint –D

    *****************************************************安装Clamav TOP*****************************************************

    #添加所需的组和用户
    groupadd clamav
    useradd -g clamav -s /bin/false clamav

    #安装软件
    cd /home/pkg
    tar -xzvf clamav-0.83.tar.gz
    cd clamav-0.83
    ./configure --disable-zlib-vcheck
    make check
    make install

    #测试Clamav
    clamscan --recursive --log=/tmp/clamscan.log ./ //扫描当前目录,测试clamscn是否运行
    cat /tmp/clamscan.log

    #更改/usr/local/etc/freshclam.conf文件,去掉下面选项前面的#:
    vi /usr/local/etc/freshclam.conf

    #Example \\前面加上"#"
    UpdateLogFile /var/log/freshclam.log \\去掉前面的#
    LogSyslog \\去掉前面的#
    PidFile /var/run/freshclam.pid \\去掉前面的#
    更改/usr/local/etc/clamd.conf文件,去掉下面选项前面的#:
    vi /usr/local/etc/clamd.conf

    #Example \\前面加上#
    LogFile /var/log/clamav/clamd.log \\去掉前面的#
    LogFileMaxSize 2M \\去掉前面的#
    LogTime \\去掉前面的#
    PidFile /var/run/clamd.pid \\去掉前面的#
    LogSyslog \\去掉前面的#
    ScanMail \\去掉前面的#
    touch /var/log/freshclam.log
    chmod 644 /var/log/freshclam.log
    chown clamav:clamav /var/log/freshclam.log
    mkdir /var/lib/clamav
    chown clamav:clamav /var/lib/clamav

    #升级clamscan病毒库
    freshclam --verbose

    #把freshclam加入crontab 定时更新病毒库,自动扫描/home目录
    crontab -e
    0 1 * * * freshclam --quiet -l /var/log/freshclam.log
    0 6 * * * /usr/local/bin/clamscan --recursive --infected --exclude /usr/local/share/clamav/viruses.db --exclude /usr/local/share/clamav/viruses.db2 --log=/var/log/clamscan.log /home

    #创建freshclam日志记录文件
    mkdir -p /var/log/clamav
    touch /var/log/clamav/clamd.log
    chown clamav.clamav -R /var/log/clamav/
    chmod 644 -R /var/log/clamav/

    #创建clamav启动脚本
    ===================================================================================================
    vi /etc/rc.d/init.d/clamav

    #!/bin/sh
    #
    # Startup / shutdown script for Clam Antivirus
    case "$1" in
    start)
    /usr/local/sbin/clamd && echo -n 'Clamd started'
    /usr/local/bin/freshclam -d -c 2 -l /var/log/freshclam.log
    echo -n ' freshclam started'
    ;;
    stop)
    /usr/bin/killall clamd > /dev/null 2>&1 && echo -n 'Clamd stoped'
    /usr/bin/killall freshclam > /dev/null 2>&1 && echo -n ' freshclam Stoped'
    ;;
    *)
    echo ""
    echo "Usage: `basename $0` { start | stop }"
    echo ""
    exit 64
    ;;
    esac
    =====================================================================================================

    #使其能够执行
    chmod 755 /etc/init.d/clamav
    #随开机起动
    ln -s /etc/init.d/clamav /etc/rc.d/rc3.d/S88clamav
    ln -s /etc/init.d/clamav /etc/rc.d/rc5.d/S88clamav


    *****************************************************安装MailDrop 和TNEF reader *****************************************************

    TNEF是一个从"application/ms-tnef". 类型中找出MIME附件的程序.这仅仅是微软系统中的一种附件.TNEF程序允许将封装成TNEF的附件提取出来. 安装TNEF并不是必须的, 但我强烈推荐安装它!

    # 安装 maildrop
    cd /home/pkg
    tar -xjvf maildrop-1.8.0.tar.bz2
    cd maildrop-1.8.0
    ./configure
    make
    make install-strip
    make install-man
    # 安装 the tnef
    cd /home/pkg
    tar -xzvf tnef-1.2.3.1.tar.gz
    cd tnef-1.2.3.1
    ./configure
    make
    make install

    #使用Maildrop调用SpamAssassin
    #在/home/vpopmail/domains/localhost.com(你创建的域)/ 建立mailfilter文件
    touch mailfilter
    chown vpopmail:vchkpw mailfilter
    chmod 700 mailfilter
    vi mailfilter
    #mailfilter内容如下:

    VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
    VSPAM=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
    `test -d $VHOME/Maildir/`
    if( $RETURNCODE != 0 )
    {

    echo "Sorry , but the user $EXT@$HOST dos not exist"
    EXITCODE=77
    exit
    }
    if ( $SIZE < 262144 )
    {
    exception {
    xfilter "/usr/bin/spamc -f -u $EXT@$HOST"
    }
    }
    if (/^X-Spam-Flag: YES/)
    {
    to "$VSPAM/Maildir/.Trash/."
    EXITCODE=0
    }
    else
    {
    to "$VHOME/Maildir/."

    }

    #修改.qmail-default内容如下:

    vi .qmail-default

    | preline /usr/local/bin/maildrop mailfilter


    第十九节:安装qmail-scanner&qms-analog TOP

    为了能够扫描邮件服务器中进出的邮件, 我们需要安装 qmail-scanner. 如果你之前没有安装perl-suidperl,我们还需要安装它

    cd /home/pkg

    rpm -Uvh perl-suidperl-5.8.5-12.1.1.i386.rpm

    #解开qmail-scanner...

    tar zxvf qmail-scanner-1.25.tgz

    #解压qms-analog...

    tar zxvf qms-analog-0.4.2.tar.gz

    cd qms-analog-0.4.2

    make all

    #下一步,我们拷贝所需要的qms-analog文件到qmail-scanner安装目录

    cp qmail-scanner-1.25-st-qms-20050219.patch /home/pkg/qmail-scanner-1.25

    #现在,让我们打上qms-analog补丁

    cd /home/pkg/qmail-scanner-1.25

    patch -p1 < qmail-scanner-1.25-st-qms-20050219.patch

    #继续安装qmail-scanner,添加所需的组和用户

    groupadd qscand

    useradd -g qscand -s /bin/false qscand

    #我们通过qms-config-script脚本来安装qmail-scanner,编辑qms-config-script

    vi qms-config

    #修改下面红色部份以达到我们的需求:

    ./configure --domain domain.com \

    --admin postmaster \

    --local-domains "domain.com" \

    --add-dscr-hdrs yes \

    --dscr-hdrs-text "X-Antivirus-MYDOMAIN" \

    --ignore-eol-check yes \

    --sa-quarantine 0 \

    --sa-delete 0 \

    --sa-reject no \

    --sa-subject ":SPAM:" \

    --sa-alt yes \

    --sa-debug no \

    --notify admin \

    --redundant yes \

    --qms-monitor no \

    --lang en_GB \

    --debug no \

    --unzip yes \

    --scanners clamscan,verbose_spamassassin \

    "$INSTALL"

    #注意: "--admin" 和 "--domain" 参数组成了帐号"user"@"domain name". 警告消息将通过qmail-scanner 发往这个邮件帐号, 所以必须确认这是一个管理级别的帐号. 另外,所有域的警告信息都会发给这个帐号, 所以一定要小心.

    #保存并退出。

    #现在我们测试qmail-scanner安装

    chmod 755 qms-config

    ./qms-config

    #在第一步时, 按y 允许qmail-scanner提前configure. 第二步时, 按y,建立 qmail-queue-scanner.pl 文件.

    #测试如果没有错误 ,就可以进行下一步安装

    ./qms-config install

    #看看/var/qmail/bin/qmail-scanner-queue.pl是否存在

    chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl

    chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl

    #然后用一个普通用户登陆,执行/var/qmail/bin/qmail-scanner-queue.pl -z

    #如果没有Can't do setuid出现,安装OK

    setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -z

    #查看qmailscan当前包含的特征

    setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -r

    #保存qmailscan定义特征的修改,使他生效。

    setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -g

    chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl

    chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl

    chown -R qscand:qscand /var/spool/qmailscan

    vi /var/qmail/supervise/qmail-smtpd/run

    #在你的qmail启动脚本修改红色部份

    #!/bin/sh

    qmailDUID=`id -u vpopmail`

    NOFILESGID=`id -g vpopmail`

    PATH=$PATH:/usr/local/bin:/var/qmail/bin

    qmailQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" export qmailQUEUE

    MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`

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

    /usr/local/bin/tcpserver -v -H -R -l 0 \

    -x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD" \

    -u "$qmailDUID" -g "$NOFILESGID" 0 smtp \

    /var/qmail/bin/qmail-smtpd \

    /home/vpopmail/bin/vchkpw /bin/true 2>&1

    #后重新启动smtp服务

    qmailctl stop

    qmailctl start

    qmailctl stat

    #这里有测试程序

    cd /home/pkg/qmail-scanner-1.25/contrib/

    chmod 755 test_installation.sh

    ./test_installation.sh -doit

    #这个脚本会设定的管理员邮件地址发送3个邮件,第一个邮件是一般的正常邮件,第二个邮件中会包含eicar.com测试病毒,第三个邮件同样包含eicar.com测试病毒,不过所附带的文件名不是eicar.com。

    #如果qmail-scanner安装正确,管理员就应该可以收到关于后面的两个邮件的警告邮件。

    #如果系统出错,可以查看/var/spool/qmailscan/qmail-queue.log日志文件。

    #qmail-scanner的特征过滤在/var/spool/qmailscan/quarantine-attachments.txt

    #主要的排错监测日志

    /var/spool/qmailscan/quarantine.log

    /var/spool/qmailscan/qmail-queue.log

    /var/spool/qmailscan/qms-events.log

    /var/log/clamav/clamd.log

    /var/log/maillog


    第二十节:安装qmailAnalog & qlogtoolsTOP

    qmailanalog针对qmail的日志进行一些最基本的分析,并将结果发送到你指定的位置。在我的方案中,设置qmailanalog每天晚上运行,并将结果发送给管理员。在使用qmailanalog时,我们还将会用到qlogtools软件包。

    qlogtools提供一系列分析qmail日志的工具,这些工具将文件中诲涩难懂的日志转换成便於我们阅读和能够理解的报告。当安装完成qmailstats和Qlogtools后,我将会创建一个脚本让它每天晚上运行,并将报告发送到管理员邮箱。这个脚本也可用到我们先前安装的qms-analog,qms-analog将会提供qmail-scanner运行状态报告。

    #先安装qmailanalog

    cd /home/pkg/

    tar zxvf qmailanalog-0.70.tar.gz

    cd qmailanalog-0.70

    patch < /home/pkg/qmailanalog-0.70.errno.patch

    make && make setup check

    #安装qlogtools

    cd /home/pkg/

    tar zxvf qlogtools-3.1.tar.gz

    cd qlogtools-3.1

    patch < /home/pkg/qlogtools_errno.patch

    make

    ./installer

    #现在我们要创建一个脚本,并将它添加到cron,让其每天晚上运行并产生报告。

    #下面是一个可靠的脚本,它将会收集qmailanalog输出的信息并产生报告。

    cp /home/pkg/qms-analog-0.4.2/qmailstats /var/qmail/bin/

    #红色部份改成你的域名。

    vi /var/qmail/bin/qmailstats

    #!/bin/sh

    # qmailanalog invocation script

    PATH=/usr/local/qmailanalog/bin:/var/qmail/bin:/bin:/usr/bin:/usr/local/bin

    qmailSTATS="/tmp/q.$$"

    EMAILMSG="/tmp/qms.$$"

    umask 077

    cat /var/log/qmail/* /var/log/qmail/pop3d/* /var/log/qmail/pop3ds/* /var/log/qmail/smtpd/* | tai64n2tai | awk '{$1=substr($1,1,index($1,".")+6);print}' | matchup > $qmailSTATS 5>/dev/null

    DATE=`date +'%D'`

    echo "To: postmaster@yourdomain.com" > $EMAILMSG

    echo "From: postmaster@yourdomain.com" >> $EMAILMSG

    echo "Subject: Nightly qmail Stats Report for $DATE" >> $EMAILMSG

    echo "" >> $EMAILMSG

    echo "" >> $EMAILMSG

    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

    zoverall < $qmailSTATS >> $EMAILMSG

    echo "" >> $EMAILMSG

    echo "" >> $EMAILMSG

    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

    zfailures < $qmailSTATS >> $EMAILMSG

    echo "" >> $EMAILMSG

    echo "" >> $EMAILMSG

    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

    zdeferrals < $qmailSTATS >> $EMAILMSG

    echo "" >> $EMAILMSG

    echo "" >> $EMAILMSG

    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~ L a s t 2 4 H o u r s ~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

    cat /var/spool/qmailscan/qms-events.log | qms-analog 24 >> $EMAILMSG

    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A l l R e c o r d s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

    cat /var/spool/qmailscan/qms-events.log | qms-analog 0 >> $EMAILMSG

    cat $EMAILMSG | qmail-inject

    rm -f $qmailSTATS

    rm -f $EMAILMSG

    #设置此脚本可执行

    chmod 750 /var/qmail/bin/qmailstats

    #现在,让我们运行脚本

    /var/qmail/bin/qmailstats

    #确认你的管理员邮箱,你将会收到一份非常详尽的报告。

    #如果测试运行正常,那就加入cron让其每天早上3点运行。

    crontab –e

    0 3 * * * /var/qmail/bin/qmailstats 1>/dev/null 2>/dev/null


    第二十一节:安装isoqlogTOP

    isoqlog是一个qmail日志分析工具,它是用perl写的,可以分析和统计qmail的运行日志,并生成漂亮的HTML格式的报表,如果服务器上已经安装WEB服务,管理员就可以通过浏览器来查看这些报表。相对于qmailanalog,isoqlog分析的项目稍微少一些。

    isoqlog可以生成多个邮件域的报表;对于每个邮件域,isoqlog可以统计出每天、每月、每年的邮件流量以及字节数,还生成相应的统计柱状图;对于每天的报表,isoqlog可以根据邮件投递的数量以及字节数的多少来对邮件用户进行排列。

    #安装isoqlog

    cd /home/pkg

    tar zxvf isoqlog-2.1.1.tar.gz

    cd isoqlog-2.1.1

    ./configure

    make

    make install

    make clean

    cd isoqlog

    mkdir /var/www/html/isoqlog

    cp -pr ./htmltemp/images ./htmltemp/library /var/www/html/isoqlog

    #配置isoqlog

    cd /usr/local/etc

    mv isoqlog.conf-dist isoqlog.conf

    vi isoqlog.conf

    #将下面红色部份改成你的安装目录和主机名称。

    #isoqlog Configuration file

    logtype = "qmail-multilog" #log type qmai-multilog, qmail-syslog, sendmail, postfix

    logstore = "/var/log/qmail" #

    domainsfile = "/usr/local/etc/isoqlog.domains" #

    outputdir = "/var/www/html/isoqlog" #html outpur directory

    htmldir = "/usr/local/share/isoqlog/htmltemp"

    langfile = "/usr/local/share/isoqlog/lang/english"

    hostname = "mail.domain.com"

    maxsender = 100

    maxreceiver = 100

    maxtotal = 100

    maxbyte = 100

    #保存并退出。

    #下一步是告诉isoqlog哪些虚拟域需要产生统计报表,我希望我的mail服务器能够报告每个域的状态,所以只需要简单的创建了个链接即可:

    ln -s /var/qmail/control/rcpthosts isoqlog.domains

    #现在,isoqlog应该能够正常运行了,运行如下命令测试一下效果:

    /usr/local/bin/isoqlog

    #通过如下页面查看输出结果:

    http://domain.com/isoqlog

    #你可以点击各个虚拟域名称显示其报表。

    #我们希望isoqlog能够即时提供报表,将如下内容加入crontab

    crontab -e

    58 * * * * /usr/local/bin/isoqlog 1>/dev/null 2>/dev/null

    #每个小时的第58分钟运行一次


    第二十二节:安装MRTGTOP

    多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具。 MRTG 产生包含图表的HTML网页,它可以将系统中的通信情况实时的显示在页面上。我们可以在我们的系统上使用它来监控电子邮件和spam情况。

    #安装

    cd /home/pkg

    rpm -Uvh mrtg-2.10.15-1.i386.rpm

    #通过安装inter7的qmailmrtg ,我们将在我们的系统上安装MRTG

    # 编译 qmailmrtg

    cd /home/pkg

    tar -xzf qmailmrtg7-4.0.tar.gz

    cd qmailmrtg7-4.0

    make

    make install

    mkdir /var/www/html/qmailmrtg

    cp qmail.mrtg.cfg index.html /var/www/html/qmailmrtg

    cd /var/www/html/qmailmrtg/

    #修改 qmail.mrtg.cfg 和 index.html文件, 将所有出现FQDN 的地方都改成你的完整域名(例如: test.com). 如果你的HTTP MRTG目录并不是默认的 (例如: 你并没有把 /var/www/html/作为你的web根目录), 则必须在/var/www/html/qmailmrtg/qmail.mrtg.cfg 文件中修改WorkDir变量为正确的路径. 如果你不需要记录某项服务, 你可以在所不需要记录的服务每一行的前面加一个# 来注释掉它,并删除index.html中对应的服务项目。

    #你可以修改 pop3和smtp所在的行, 设置MaxBytes参数来重写tcpserver中-cX所在行.

    #你还可以修改concurrency来重写concurrencyremote或concurrencylocal 的值. 如果这些文件在/var/qmail/control 目录下并不存在,则qmail默认的值为20.

    #下面是我们的最后一步,将下面一段添加到crontab中, 以使我们能每五分钟升级一次MRTG数据. 运行如下命令:

    crontab -e

    #添加下面一段 (使MRTG每五分钟运行一次) 然后退出crontab:

    */5 * * * * /usr/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg 2>&1 > /dev/null

    #现在运行MRTG三次来安装它. 你将会收到3次警告消息. 之后,你将不会再收到警告了.

    env LANG=C /usr/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg

    #现在应该安装好了. 为了能显示些信息,我们等待15分钟的日志记录. 你可以通过下面的地址来检查图形监控情况:

    http://your.host.name/qmailmrtg/

    查看它们的图形监控情况!


    第二十三节:测试TOP

    测试igenus

    http://domain.com/

    测试qmailadmin

    http://domain.com/cgi-bin/qmailadmin

    测试vQadmin

    http://domain.com/cgi-bin/vqadmin/vqadmin.cgi

    测试SMTP认证

    [root@mail pkg]# telnet localhost 25

    Trying 127.0.0.1...

    Connected to localhost.localdomain (127.0.0.1).

    Escape character is '^]'.

    220 domain.com ESMTP

    ehlo domain.com

    250-domain.com

    250-STARTTLS

    250-PIPELINING

    250-8BITMIME

    250-SIZE 0

    250 AUTH LOGIN PLAIN CRAM-MD5

    starttls

    220 ready for tls

    quit

    quit

    Connection closed by foreign host.

    [root@mail pkg]#

    测试POP3

    [root@mail pkg]# telnet localhost 110

    Trying 127.0.0.1...

    Connected to localhost.localdomain (127.0.0.1).

    Escape character is '^]'.

    +OK <12316.1112351637@mail.domain.com>

    user xuki@domain.com

    +OK

    pass xukixu

    +OK

    quit

    +OK

    Connection closed by foreign host.

    [root@mail pkg]#

    测试IMAP

    [root@mail pkg]# telnet localhost 143

    Trying 127.0.0.1...

    Connected to localhost.localdomain (127.0.0.1).

    Escape character is '^]'.

    * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 Double Precision, Inc. See COPYING for distribution information.

    a001 login xuki@domain.com xukixu

    a001 OK LOGIN Ok.

    a001 login out

    a001 NO Error in IMAP command received by server.

    a001 logout

    * BYE Courier-IMAP server shutting down

    a001 OK LOGOUT completed

    Connection closed by foreign host.

    [root@mail pkg]#


    第二十四节:系统维护TOP

    邮件系统相关日志

    /var/log/maillog

    /var/log/qmail/current

    /var/log/qmail/pop3d/current

    /var/log/qmail/pop3ds/current

    /var/log/qmail/smtpd/current

    /var/spool/qmailscan/qmail-queue.log

    /var/spool/qmailscan/qms-events.log

    /var/spool/qmailscan/quarantine.log


     

    第二十五节:FAQ(网上收集)TOP

     

    设置qmail用户邮箱的容量

    cd /home/vpopmail/bin

    ./vsetuserqutoa domain.com 10500000s --domain.com这个域,都设成10m的

    ./vsetuserqutoa xuki@domain.com 10500000s ---只把xuki@domain.com这个用户单独设置为10m。

    qmail限制附件的大小

    在/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建。smtp方式是以qmail的databytes作限制的;创建databytes并设置邮件最大为4m :

    echo 4000000 >/var/qmail/control/databytes

    限制单域的邮箱数量

    vi /home/vpopmail/domains/domain.com/.qmailadmin-limits

    maxpopaccounts 200

    default_quota 52428800s

    chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits

    chwod vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits

    这样就把邮箱总数限制在200个,每个邮箱为50M了

    用qmail封mailfrom

    vi/var/qmail/control/badmailfrom

    这个控制文件实现拒收邮件功能的,每一个地址要单独一行。而且,不用重起qmail就能生效。例如:

    peng@96633.net -----限制一个特定的用户

    @sina.com -----限制整个域中的邮件

    批量添加用户

    例1:

    新建一文件 batchadduser.sh,将以下内容拷入文件中保存,运行chmod u+x batchadduser.sh使其可执行。

    #!/bin/bash

    #batchadduser.sh: batch add mail user.

    #install step.

    #chmod u+x batchadduser

    #./batchadduser.sh domain datafile

    if [ $# -lt 2 ]

    then

    echo "usage: $0 domain datafile"

    exit 1

    fi

    domain=$1

    datafile=$2

    addcmd=/home/vpopmail/bin/vadduser

    while read username passwd

    do

    $addcmd $username@$domain $passwd

    done < $datafile

    user文件内容的格式

    username1 passwd

    username2 passwd2

    ............

    运行batchadduser.sh user即可批量添加用户。

    例2:

    我把用户名放到一个文本文件中,一个名字一行,密码和它的帐号一致,用户自己再去改密码。

    while read line

    do

    echo $line

    ./vadduser $line $line

    done < user

    有选择地清理不需要的Mail Queue

    1、处理队列中的邮件:

    如想在队列中的邮件马上传递,可以

    kill -HUP qmail-send

    要删除队列中的邮件

    1) 停止qmail

    2) mv /var/qmail/queue/lock /var/qmail/;find /var/qmail/queue/ -type f -exec rm {} \; ;mv /var/qmail/lock /var/qmail/queue/

    3) 重启qmail.

    队列中的邮件包含在以下目录中 /var/qmail/queue/{info,mess,remote,local}/hash/#number

    2、在邮件队列中快速删除从一个地方发过来但又不存在的邮件设bad.jite.com是这个域。可以键入以下命令

    echo # > ~alias/.qmail-baddomain-default

    echo bad.jite.com:alias-baddomain>> /var/qmail/control/virtualdomains

    echo bad.jite.com:127.0.0.1 >> /var/qmail/control/smtproutes

    然后运行/var/qmail/bin/qmail-tcpok,给qmail-send 一个HUP信号

    3、删除队列中的大量广告信息

    先停止qmail.

    1) 停止qmail, qmail-smtpd

    2) 在以下默认目录下 /var/qmail/queue/mess

    find /var/qmail/queue/mess -type f -exec grep "^Subject:dss" {} \; -print -exec rm {} \;

    3) 运行queue-fix清除相关文件,

    4) 重启qmail.

    使用sh备份qmail+mysql数据到指定的ftp地址的方法

    备份vpopmail的domains目录、qmail的control目录和mysql的var数据存放目录,使用crontab定时进行操作。下面是脚本文件,具体的目录视自己的系统更改:

    mkdir /var/qmailbakup

    cd /var/qmailbakup

    touch qmailbakup.sh

    chmod 755 qmailbakup .sh

    vi qmailbakup.sh

    #!/bin/sh

    DATE=`date +%Y-%m-%d-%H`

    cd /var/qmailbakup/

    tar cvzf domains.$DATE.tar.gz /home/vpopmail/domains

    tar cvzf control.$DATE.tar.gz /var/qmail/control

    tar cvzf mysql.$DATE.tar.gz /usr/local/mysql/var

    ftp -n 192.168.0.21 << ! //你的ftp服务器的地址

    user qmail qmailbakup //ftp用户名和密码,注意要有put权限

    binary

    put domains.$DATE.tar.gz

    put control.$DATE.tar.gz

    put mysql.$DATE.tar.gz

    bye

    !

    rm -f domains.$DATE.tar.gz control.$DATE.tar.gz mysql.$DATE.tar.gz //删除本机产生的文件,如果你想在本服务器也保存一份备份,去掉该项即可。

    使用crontab定时执行:

    vi /etc/crontab

    00 20 * * 0-6 /var/qmailbakup/qmailbakup.sh

    这样每天晚上8:00执行改备份程序。

    给新浪发信的解决办法

    1) echo "我的邮件服务器的真实域名(A记录)" > /var/qmail/control/helohost

    2) 拨打新浪邮件售后服务电话

    临时限制一个用户的pop3

    vmoduser -p email_addr or domain ( for the entire domain )

    修改默认的域名

    A:

    要更改haohao.com为默认域。

    方法:

    更改~qmail/control/

    defaultdomain

    me

    plusdomains

    逐一更改启动pop3和 smtp的启动脚本:

    修改:email.3sk.com为haohaoo.com

    在最上边添加:export VPOPMAIL_DOMAIN=haohaoo.com

    将一个系统的qmail用户完整地转移到另一个系统

    A:

    a.cdb配置的?那么请把/home/vpopmail/domains这个文件夹备份好就可以了。用户和密码文件,还有用户信件都在这个目录下。

    还应该备份/var/qmail/control下的相关配置文件。

    b.如果是以MYSQL数据库方式来存储用户认证信息的

    只需要备份

    ~vpopmail/domain下的所有邮件

    /var/qmail/control的配置文件

    MYSQL数据库目录下的vpopmail库目录。一般是/var/lib/mysql(RPM)、/usr/local/mysql/data、/usr/local/mysql/var下面。

    把一邮件域的名字比如a.com更改为b.com,如何实现

    以下几个步骤:

    1、cd /home/vpopmail/domains

    mv a.com b.com

    2、把vpopmail数据库的vpopmail表导出把所有a.com改为b.com,然后删除vpopmail表,再导入.

    3、把把vpopmail数据库的dir_control表的a.com改为b.com

    4、在/home/qmail/control 目录下把 virtualdomains和rcpthosts下的的a.com改为b.com.

    5、在/home/qmail/users目录下把assign文件的a.com改为b.com

    6、需要运行qmail-newu重新生成cdb。assign只是配置文件,cdb才是实际的数据文件。

    加快 qmail 投递邮件速度

    A: /var/qmail/control下面是qmail的控制文件,这两个文件:

    Concurrentcylocal default: 10 最大本地同时传送数

    Concurrencyremote default: 20 最大远程同时传送数

    更改域的默认管理账号

    A: vmoduser有个-a参数,可以赋予用户管理权限。

    如果想全面禁用postmaster的特殊权限话,就只能改源代码了。

    qmail下的主要配置文件(/var/qmail/control目录下):

    文件名 默认值 使用者用途

    badmailfrom none qmail-smtpd 黑名单地址

    bouncefrom MAILER-DAEMON qmail-send 退回邮件

    bouncehost me qmail-send 退回邮件

    concurrencylocal 10 qmail-send 本地同时投递邮件的数目

    concurrencyremote 20 qmail-send 同时投递至远程主机的数目

    defaultdomain me qmail-inject 默认域名

    defaulthost me qmail-inject 默认主机名

    databytes 0 qmail-smtpd 邮件的最大容量 (0=无限制)

    doublebouncehost me qmail-send

    doublebounceto postmaster qmail-send

    envnoathost me qmail-send 没有"@"的默认域名

    helohost me qmail-remote 主机名

    idhost me qmail-inject Message-ID的主机名

    localiphost me qmail-smtpd 本地IP的替代名

    locals me qmail-send 传递至本地的域名

    me 系统正式域名 various

    morercpthosts none qmail-smtpd 第二个rcpthosts

    percenthack none qmail-send 使用 "%"格式的域名

    plusdomain me qmail-inject

    qmqpservers none qmail-qmqpc QMQP服务器的IP地址

    queuelifetime 604800 qmail-send 在队列中邮件保存的时间(秒)

    rcpthosts none qmail-smtpd 接收邮件的域名

    smtpgreeting me qmail-smtpd

    smtproutes none qmail-remote

    timeoutconnect 60 qmail-remote SMTP连接超时时间

    timeoutremote 1200 qmail-remote 等待远程主机的时间

    timeoutsmtpd 1200 qmail-smtpd SMTP客户连接超时的时间

    virtualdomains none qmail-send 虚拟域名

    qmail限制附件大小

    我的配置经验==》qmail限制附件大小:

    1.在/var/qmail/control/databytes 中设置附件大小,这个文件要手动建立,直接输入数字就行,默认单位为bytes,如10485760为10M;

    2.Webmail中发送附件默认只支持500K左右,如想支持5M附件,修改如下文件

    vi /etc/php.ini

    post_max_filesize=5M //320行

    upload_max_filesize=5M //405行

    session.bug_compat_42=0 //加入到641行

    session.bug_compat_warn=0

    vi /etc/httpd/conf.d/php.conf

    LimitRequestBody 5242880 //修改14行的值为5M

    WebMail上传附件大小限制 (解决上传文件不能大于512KB的问题)

    更改/etc/httpd/conf.d/php.conf:

    LimitRequestBody 524288中的524288正好跟512KB相等,将其更改为10485760,设置允许最大上传的附件为10MB。

     

    |/usr/local/bin/autorespond 10000 5


    |表示调用一个程序来处理该邮件这里是调用autorespond来处理;10000表示允许处理信
    件的总时间;5表示在这段时间内的最大邮件


    限制你的邮件列表被滥用
    你需要在邮件列表文件头加入一个过滤程序。一种选择是使用qmail的补丁程序 qlist ,你可以在官方站点qmail.org找到它。它会使用 pgp 来标记你的邮件信息,一个包含pgp标识的过滤的邮件列表大致如下:

    |if grep "^-----BEGIN PGP MESSAGE-----$"; then exit 0; else exit 100; fi
    |if grep "^-----END PGP MESSAGE-----$"; then exit 0; else exit 100; fi
    |if pgp -f; then exit 0; else exit 100; fi
    +list
    &address
    &address
    ...


    只有邮件列表允许的用户(假定是别名)才拥有pgp的密钥。或者为需要的用户指定一个密钥文件。 另外一种过滤器通过检查邮件,判断是否来自本地用户或者来自最近的qmail-smtpd进程。如果是本地用户就允许通过,远程站点的就退回该信件。它的形式如下:

    |if grep Received: | tail +1l | grep network; then echo
    "This is a moderated list"; exit 100; fi
    +list
    &address
    &address
    ...


    如果不是本地系统的用户,你可以分配一个别名(记得chmod 700 ~alias),使它能投递到邮件列表。运行:

    |grep -v '^Delivered-To:' | forward LISTNAME


    必须删除 Delivered-To: 这行,否则将它放弃这个别名


    如果你不想让一份无法投递的邮件在队列里呆太久
    你可以在 queue/info 目录里运行

    touch -d '1 week ago'


    来结束它的队列生命周期。这样,如果再次投敌不成功,这份邮件就会被退回


    装完qmail后,用本地的信箱或外面的信箱发信过来都显示错误:
    delivery 12: failure: Sorry,_no_mailbox_here_by_that_name._(#5.1.1)/没有创建用户的Maildir目录.请记住,创建maildir目录的组和用户权限必须正确


    maillog里面出现:
    "Unable_to_open_./Maildir:_is_a_directory._(#4.2.1)/"在修改rc里的./Mailbox 改成 ./Maildir/时出错


    maillog里面出现:
    oh:_.qmail_has_file_delivery_but_has_x_bit_set._(#4.7.0)/
    .qmail文件多了个x标志位, 运行chmod a-x .qmail

    maillog里面出现:
    "Unable_to_open_./Maildir:_is_a_directory._(#4.2.1)/"用户的.qmail所在地方不对,此文件必须存在于用户的HOME里面


    tcpserver執行qmail-smtpd 时默认的为40个进程,
    要想修改更多的话,例:200个 tcpserver -c 200
    tcpserver -v -u uid -g gid 0 smtp /var/qmail/bin/qmail-smtpd \
    2>&1 | /var/qmail/bin/splogger smtpd 3 &
    &不要省略,


    如何清除90天前的邮件

    find /home/vpopmail/domains/ -ctime +90 -type f -path '*Maildir/cur*' | xargs -i --verbose rm '{}' 2>&1


    qmail拒收某个IP或网段的邮件
    编辑你的tcp.smtp文件,加入:
    对方的IP:deny
    或者:
    某个网段.:deny
    例:2.82.34.:deny
    来禁止2.82.34的整个网段的访问。
    然后使用tcprules重新生成tcp.smtp.cdb文件。

    qmail自动删除发给系统上不存在的邮件帐号的信,而且不产生系统退信
    echo'|/var/vpopmail/bin/vdelivermail' 'delete'> /var/vpopmail/domains/yourdomain.com/.qmail-default


    这会把发给不存在的用户的信直接删除掉.


    清除qmail的邮件队列
    安装qmail-remove
    qmail-remove -r


    这步会把所有队列内容移动到/var/qmail/queue/yanked目录下。
    接下来可以决定如何处理该目录的内容了,垃圾邮件


    有没有简单的方法可以阻止某些用户发邮件到外部地址 (或内部服务器)?
    A: 可以.注意NO_RELAY标志,它可以对任何用户起作用:
    vmoduser -r email@domain


    有没有方法可以拒绝整个域的POP连接,而不单是某个邮件地址?

    A: 当然.vmodeuser可以帮你解决问题:
    vmoduser -p domain.com


    qmail控制文件的作用
    qmail-inject
    qmail-inject接受本地邮件消息后检测邮件头是否符合RFC822标准,并传送给qmail-queue排进队列
    defaultdomain 用来向那些没有使用正确的username@hostname.domain格式的邮件中增加邮件地址的,默认情况下,如果主机地址中没有结束符".",qmail-inject将给主机名后添加defaultdomain的内容,如果该文件不存在,将使用me文件中的值代替.例如:defaultdomain值为yourdomain.com本地产生了一封发送给xxxx@xxxx的邮件,那么qmail-inject将用yourdomain.com来补全这个后缀,变成xxxx@xxxx.yourdomain.com
    defaulthost 用来定义主机名,用来向地址中不含主机名的邮件补足邮件地址的。类似于defaultdomain。例如:defaulthost值为yourdomain.com那么发送给 xxxx的消息,将被qmail-inject用defaulthost的值来补足为xxxx@yourdomain.com,以便于qmail-send快速分辨是否属于本地地址。
    idhost 用来指定邮件中Message-ID:头字段的主机名例如:idhost值为yourdomain.com那么邮件头中如下:
    Message-ID:<1234567890.12345.qmail@yourdomain.com>
    如果idhost值为xxxx.yourdomain.com 那么邮件头中如下:
    Message-ID:<1234567890.12345.qmail@xxxx.yourdomain.com>
    plusdomain
    用来将其值添加在任何一个以一个+号结尾的地址
    qmail-qmqpc qmail-qmqpc是快速邮件排队协议(QMQP)使用的程序,QMQP是一个QMAIL专用协议,用在工作站级QMAIL服务器向中心服务器发送队列。
    qmqpservers 用来指定qmail-qmqpc使用的上级服务器
    通常该功能应用很少,我认为qmail-qmqpc用法就是代替qmail-queue来直接传给上级服务器。
    qmail-remote
    qmail-remote通过SMTP协议向远程主机传送邮件。
    helohost 该文件用来指定qmail-remote程序与远程邮件主机SMTP会话中的主机名。
    smtproutes 用来指定到固定目的的静态SMTP路线。
    例子:smtproutes内容如下
    xxxx.yourdomain.com:mail8.xxxx.jp
    :fw.xxxx.yourdomain.com:8088
    第一行的存在会将发给xxxx.yourdomain.com的邮件重定向到mail8.xxxx.jp主机
    第二行的存在会将任何不符合之前行条件的邮件重定向到fw.xxxx.yourdomain.com的8088端口,让邮件安全的穿越防火墙
    qmmail-remote将按照smtproutes中的行序来进行处理
    timeoutconnect 用来指定qmail-remote尝试同一个远程邮件主机建立一个SMTP会话的时间。默认值状态下如果超出60秒没有得到远程邮件主机的回应,那么将断开连接。
    timeoutremote 用来指定qmail-remote在一个SMTP连接已经建立后,远程邮件主机的每一个回应的时间数。默认值为1200秒。
    qmail-send
    qmail-send用来检测队列中每一个邮件的状态,并调用相应的程序进行处理。例如一个目的为本地的邮件将会被qmail-send调用qmail-lspawn处理。
    bouncefrom | bouncehost 默认情况下,退回给原始发送方的邮件的发件人地址为MAILER-DAEMON@HOSTNAME,如果你想修改MAILER-DAEMON这段,那么就修改bouncefrom文件吧。如果想修改MAILER-DAEMON@HOSTNAME中HOSTNAME这段,那么就修改bouncehost文件。例如:bouncefrom内容为SERVER-MANAGER | bouncehost文件内容为mail8.xxxx.jp那么一封因为邮件地址不存在而被退回的通知邮件的发件人将是 SERVER-MANAGER@mail8.xxxx.jp
    concurrencylocal 用来决定qmail可以同时运行的本地投递进程的数目,默认值是10,标准安装的qmail最大可设值是120。安装的时候可以通过修改conf-spawn来将其变为255以下任何数目。
    concurrencyremote 用来决定qmail可以同时运行的远程投递进程的数目,默认值是20,就是说,qmail可以在同一时间内同时发送20封邮件,标准安装的qmail最大可设值是120。安装的时候可以通过修改conf-spawn来将其变为255以下任何数目。
    doublebouncehost | doublebounceto 这两个控制文件类似于bouncefrom和bouncehost的关系,也是doublebouncehost指定主机名,doublebounceto指定用户名。
    他们的功能是为一个被退回两次的邮件制定一条出路。例如:doublebouncehost内容为xxxx.yourdomain.com | doublebounceto内容为xxxx那么一个被退回2次的邮件将被发送给xxxx@xxxx.yourdomain.com
    没有这两个文件的时候,那么发送给postmaster@me文件中的域名
    envnoathost
    qmail-send用来给没有主机名的邮件收件人制定一个主机名的,通常这个文件并没有必要,qmail-send总是使用me文件中的域名。
    locals
    用来为qmail指明位于本地的邮件地址。qmail-send利用此文件来判断收件人地址是否是一个本地地址。
    例如:locals文件中写有xxxx.yourdomain.com
    那么qmail-send检测到队列中有发送给@xxxx.yourdomain.com的邮件的时候,就会调用qmail-lspawn来进行本地投送。
    me 如果没有me文件,那么你的qmail将拒绝执行。me文件用来指定本地邮件服务器的主机名。以上列出的许多控制文件在没有被创建的时候,qmail都会用me中的值来代替。
    percenthack 在UUCP协议中带有%并在该文件中列出的地址将会被转换为一个标准的DNS格式主机名。
    queuelifetime 用来指定一个邮件在队列中的最大存活时间,默认是604800秒,当一个邮件达到这个时间线后,qmail将最后一次尝试发送这封邮件,如果依然失败,会将其从队列中删除。
    virtualdomains
    让qmail接受本地邮件以外,还接受该文件中指定的域或者邮件地址,就是常说的虚拟域支持。
    qmail-smtpd
    qmail-smtpd接受远程主机的邮件并转交给队列处理程序qmail-queue来处理。
    badmailfrom 用来指定不喜欢的发件人的邮件地址或者是域名
    例如:badmailfrom中写有
    advt@msn.com
    @hotmail.com
    如果advt@msn.com给该邮件主机送信时,将得到code 553,告知其是一个不受欢迎的发件人。而所有来自hotmail.com的发件人也将得到同样的code 553。
    databytes 用来指定该邮件服务器可以接受邮件的最大字节数。
    例如:databytes指定为8000000
    那么如果有人给该主机发送的邮件字节数超过了这个商业上默认的最大容忍限度,将得到code 552,告知其邮件大小超出了该邮件主机所能容忍的限度。恐怖的是,默认状态下,这个文件并没有,如果有人用你服务器上的两个不存在的地址作为FROM/TO发一个100M的邮件 
    localiphost
    用来为使用ip来标示目的主机的邮件消息指定本地主机名的例如:xxxx.yourdomain.com的ip地址为198.17.1.2 | localiphost内容为xxxx.yourdomain.com那么一封发送给xxxx@[198.17.1.2]的邮件的地址会被转换为xxxx@xxxx.yourdomain.com
    rcpthosts | morercpthosts
    这两个文件用来指定qmail可以接收的除本地主机名外的其他域名他们的作用是相同的,不过因为rcpthosts中的域名不能超过50行,所以才出现了morercpthosts文件
    timeoutsmtpd 用来指定qmail-smtpd等待远程SMTP主机发送数据的时间线。默认的情况下,如果连接建立后1200秒内没有接受到远程SMTP主机的任何信息,那么将关闭这个连接。
    smtpgreeting 用来指定SMTP连接的欢迎标志
    例如:smtpgreeting值为 welcome connect to out open relay mail server - ad.xxxx.yourdomain.com那么建立一个smtp连接的时候将会看到如下信息:
    Trying 198.17.x.x...
    Connected to ad.xxxx.yourdomain.com.
    Escape characteris ^].
    220 welcome connect to out open relay mail server - ad.xxxx.yourdomain.com ESMTP


    delivery 1: deferral: Uh-oh:_home_directory_is_writable._(#4.7.0)/
    It's actually pretty clear: qmail refuses to deliver mail to that account
    because its home directory is world-writable, because that's a security risk.
    Remove the world-writable permissions on the user's home directory

     

    qmail中的几个error的产生的原因和解决方法
    wd | 14 十二月, 2004 10:18

    1 deferral: Unable_to_chdir_to_maildir._(#4.2.1)

    这个是qmail找不到用户的收信目录所致。如果你是用vpopmail的虚拟域名来管理的,那看看你的control/locals文件,里面不能有虚拟域名,只能有实际域名(这个实际域名的意思应该是使用系统用户作为用户的域,而不是使用vpopmail的虚拟用户的域)。因此呢,如果不是用vpopmail,那么可能是系统用户的目录权限设置不正确。

    如果发生这个错误,首先保证你没有对user/assign做过手动修改,添加域名都是使用vpopmail的vadddomin命令来添加的,没有修改过~vopmail/domins目录以及其下面目录的权限和属主,然后修改了locals文件之后重启应该就没有问题了。

    2 deferral: Uh-oh:_.qmail_has_prog_delivery_but_has_x_bit_set._(#4.7.0)

    这个是因为你的.qmail文件设置了x属性,把.qmail文件的x去掉就ok了。这个.qmail文件就在你的domins/xxx.com下面,包括比如.qmail-default之类的文件,修改一下权限,去掉x就ok了。

    3 454 oops, unable to write pipe and I can't auth (#4.3.0)

    这个错误是在你打了smtp auth的补丁之后,却发现不能正常auth,输入了正确的用户名密码还是提示不正确。可以通过下面的命令来测试。

    [root@caph qmail-smtpd]# telnet localhost 25
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    220 xxx.com ESMTP
    ehlo
    250-xxx.com
    250-PIPELINING
    250-8BITMIME
    250-SIZE 104857600
    250 AUTH LOGIN PLAIN CRAM-MD5 //显示这个通常表示你已经打好了补丁,不过这个是可以通过修改qmail-smtp.c文件来定制的。
    auth login
    334 VXNlcm5hbWU6
    awefaq23rasdf
    334 UGFzc3dvcmQ6
    awefwaef
    454 oops, unable to write pipe and I can't auth (#4.3.0)
    quit
    221 xxx.com
    Connection closed by foreign host.

    出现了这种问题是因为smtp运行脚本没有设置正确的用户所致。将你的smtp的tcpserver命令的运行用户和组指定一下。

    QMAILDUID=`id -u vpopmail`
    QMAILDGID=`id -g vpopmail`

    /usr/local/bin/tcpserver -v -H -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD"
    -u "$QMAILDUID" -g "$QMAILDGID" 0 smtp /usr/local/bin/rblsmtpd -r relays.ordb.org
    /var/qmail/bin/qmail-smtpd
    /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1

    不需要修改~vpopmail/bin/vchkpw的属性。

    4 451 qq write error or disk full (#4.3.0)

    通常产生这个可能有2个原因:(1)你的qmail queue所在的磁盘空间不足。(2)qmail-queue的权限设置不正确或者文件有问题。

     

    错误信息:the smtp server reply:qq crashed (#5.1.1)
    修改stmp启动脚本,改大smtp的softlimit

    Sorry. Although I'm listed as a best-preference MX or A for that host,it isn't in my control/locals file, so I don't treat it as local. (#5.4.6)
    修改源码:ipme.c
    ip_scan("0.0.0.0",&ix.ip);--92行左右加进
    if (!ipalloc_append(&ipme,&ix)) { close(moreipme_fd); return 0; }

     

    在邮件队列中快速删除从一个地方发过来但又不存在的邮件?
    A:
    设bad.jite.com是这个域。可以键入以下命令

    echo # > ~alias/.qmail-baddomain-default
    echo bad.jite.com:alias-baddomain>> /var/qmail/control/virtualdomains
    echo bad.jite.com:127.0.0.1 >> /var/qmail/control/smtproutes
    然后运行/var/qmail/bin/qmail-tcpok,给qmail-send 一个HUP信号

     

    解决qmail经常收到来至<#@[]>这样的邮件!
    首先说明一下<>和<#@[]>都是系统bouce信件信封(envelope)上的寄信人地址
    这两种信都是系统产生的,区别在于<>往往是系统single bouce的地址,而<#@[]>则是系统double bounces或者triple bouces的地址
    系统用这两种地址是为了避免邮件回路(mail loops)
    来自<#@[]>一般都是系统的double bounces
    要去掉这些double bounces可以有一种简单的办法
    其原理是产生一个nobody的地址,发往这里的信件都会被丢弃,这样double bouces就不会烦你的postmaster了
    具体步骤如下:
    echo # > /var/qmail/alias/.qmail-nobody
    echo nobody > /var/qmail/control/doublebounceto

     


     

     

  • 相关阅读:
    哈夫曼
    P1631序列合并
    PAT Mice and Rice
    ybt 1356 计算(calc)
    P2947 Look Up S
    electron主进程与渲染进程的通信方式
    自定义BufferedReader
    小程序云数据库查询数据用在其它任意地方(完美解决)
    html+js实现微信跳转遮罩层
    Java创建属于自己的二维码(完整版)
  • 原文地址:https://www.cnblogs.com/xiong/p/270590.html
Copyright © 2020-2023  润新知