内容简介:本指南将告诉你如何用qmail/vpopmail/courier-imap/qmail-scanner/igenus来打造一个邮件系统。
1. 前言
本文部分内容翻译自Gentoo Forums。您可以访问上面的地址查看最新版本。
2. 设置USE环境变量
首先设置好 USE 环境变量,修改 /etc/make.conf,添加如下 USE 变量:
代码 2.1: /etc/make.conf |
USE=apache2 maildir mysql |
3. 安装 qmail
首先你要确保已经卸载了其他相关邮件处理软件,如:ssmtp, sendmail 或 postfix,然后执行:
代码 3.1: 安装qmail |
# emerge -C ssmtp sendmail postfix # emerge /usr/portage/mail-mta/qmail/qmail-1.03-r13.ebuild # ebuild var/db/pkg/mail-mta/qmail-1.03-r13/qmail-1.03-r13.ebuild config # ln -s /var/qmail/supervise/qmail-send /service/qmail-send # ln -s /var/qmail/supervise/qmail-smtpd /service/qmail-smtpd # rc-update add svscan default # /etc/init.d/svscan start |
4. 安装vpopmail
代码 4.1: 安装vpopmail |
# emerge /usr/portage/net-mail/vpopmail/vpopmail-5.4.0.ebuild |
以root身份登录你的mysql服务器作一下操作:
代码 4.2: 操作mysql服务器 |
> create database vpopmail; > use mysql; > grant select, insert, update, delete, create, drop on vpopmail.* to vpopmail@localhost identified by 'your password'; > flush privileges; |
如果你发现 vpopmail 无法收取邮件,那么请确保 /etc/vpopmail.conf 文件的权限是 600 并由 vpopmail:vpopmail 所有。
下面修改 /etc/vpopmail.conf,修改其中的数据库密码为上面设置的密码。并且执行:
代码 4.3 |
# chmod 644 /etc/vpopmail.conf # chown vpopmail:vpopmail /etc/vpopmail.conf |
5. 安装 courier-imap
代码 5.1: 安装courier-imap |
# emerge /usr/portage/net-mail/courier-imap/courier-imap-3.0.2-r1.ebuild # nano -w /etc/courier-imap/authdaemonrc 加入 authmodulelist="authvchkpw" #nano -w /etc/courier-imap/imapd 加入 IMAPDSTART=YES AUTHMODULES="authvchkpw" # nano -w /etc/courier-imap/pop3d 加入 POP3DSTART=YES AUTHMODULES="authvchkpw" # rc-update add courier-imapd default #rc-update add courier-pop3d default #/etc/init.d/courier-imapd start #/etc/init.d/courier-pop3d start |
6. 配置 smtpd 以使 smtp-auth 能够使用 vpopmail
代码 6.1 |
# nano -w /var/qmail/control/conf-smtpd 加入 QMAIL_SMTP_POST="microweb.3322.org /var/vpopmail/bin/vchkpw /bin/true" # svc -t /var/qmail/supervise/qmail-smtpd # chmod u+s /var/vpopmail/bin/vchkpw |
下面的操作可以大大加快邮件的传输速度,如果你发现邮件传输时有30到45秒的延迟,那么我强烈建议你做一下操作:
代码 6.2 |
# nano -w /var/qmail/control/conf-common 加入 TCPSERVER_OPTS="-H -R -l 0" |
7. 安装 spam 数据库客户端
代码 7.1 |
# emerge /usr/portage/dev-python/pyzor/pyzor-0.4.0-r1.ebuild # emerge /usr/portage/mail-filter/razor/razor-2.40.ebuild # emerge /usr/portage/mail-filter/dcc/dcc-1.2.28.ebuild |
8. 安装 f-prot 和 Mail-SpamAssassin
这两个软件必须在安装 qmail-scanner 前正常运行。
代码 8.1 |
# emerge /usr/portage/app-antivirus/f-prot/f-prot-4.4.2.ebuild # emerge /usr/portage/mail-filter/spamassassin/spamassassin-2.63.ebuild # nano -w /etc/conf.d/spamd 加入 SPAMD_OPTS="-d -u vpopmail -v -x -C /etc/mail/spamassassin/local.cf" # rc-update add spamd default # /etc/init.d/spamd start |
现在你可以建立一个 cron.hourly 任务以便自动更新 f-prot 定义:
代码 8.2 |
# nano -w /etc/cron.hourly/virus-update.cron 内容如下: #!/bin/bash /opt/f-prot/check-updates.pl -cron -quiet |
代码 8.3 |
# chmod 755 /etc/cron.hourly/virus-update.cron # crontab -e min hour day month weekday command 0 * * * * /etc/cron.hourly/virus-update.cron |
现在来设置spam进程规则,在/etc/mail/spamassassin/local.cf里加入以下内容:
代码 8.4: /etc/mail/spamassassin/local.cf |
required_hits 5.0 rewrite_subject 1 subject_tag *****SPAM***** report_safe 1 report_header 1 use_bayes 1 auto_learn 1 skip_rbl_checks 0 use_razor2 1 use_dcc 1 use_pyzor 1 ok_languages all ok_locales all |
9. 安装 qmail-scanner
安装 qmail-scanner 之前你可能需要强制安装 maildrop。
代码 9.1: 安装maildrop |
# emerge /usr/portage/mail-filter/maildrop/maildrop-1.5.3-r1.ebuild # emerge /usr/portage/net-mail/qmail-scanner/qmail-scanner-1.16-r2.ebuild |
以"qmaild"用户登录并运行:
代码 9.2 |
# /var/qmail/bin/qmail-scanner-queue.pl -g |
如果你看到 "Can't do setuid" 或 "Permission denied" 错误提示请查阅 FAQ。 (如:"setuidgid qmaild "/var/qmail/bin/qmail-scanner-queue.pl -g" 或 "su qmaild -c "/var/qmail/bin/qmail-scanner-queue.pl -g")
/etc/mail/sendmail/local.cf 中的 'subject_tag' 变量好像不能正确修改 spam 检测到的subject,所以我们这样修改:
代码 9.3 |
# nano -w /var/qmail/bin/qmail-scanner-queue.pl 加入 my $spamc_subject='*****SPAM*****'; |
现在来配置 tcp.smtp 以激活 qmail-scanner:
代码 9.4 |
# nano -w /etc/tcp.smtp 加入 # Qmail-Scanner disabled for mail from localhost, relay allowed 127.0.0.1:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-queue" # Qmail-Scanner enabled (virus only) for mail from local network, relay allowed 192.168.1.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" # Qmail-Scanner enabled (virus and spam) for mail from external internet, relay denied :allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" |
代码 9.5 |
# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp # chmod 644 /etc/tcp.smtp* |
10. 安装 qmailadmin
代码 10.1 |
# emerge /usr/portage/net-mail/ezmlm-idx-mysql/ezmlm-idx-mysql-0.40-r2.ebuild # emerge /usr/portage/net-mail/autorespond/autorespond-2.0.4.ebuild # emerge /usr/portage/net-mail/qmailadmin/qmailadmin-1.2.0_rc2-r1.ebuild |
你可以登录http://www.youdomain.com/cgi-bin/qmailadmin 地址进入 qmailadmin 管理界面。如果页面上的图片没有正确显示,你必须自己将其复制到正确位置,你可以查看 /var/log/apache2/error_log 以获取其位置。注意这个版本的 qmailadmin 没有使用 valias 来维护 forward/alias ,你可以从源代码安装 1.2.1 版本来实现。
11. 安装 igenus
注释:我的域名是 microweb.3322.org ,以下出现 microweb.3322.org 字样你需要根据你的情况更改。 |
到www.igenus.org下载最新的 igenus 压缩包,我下载的是 igenus_2.0_20040703_release.tgz。
将下载的压缩包解压至 /va/www/localhost/htdocs,并设置所有者为 vpopmail:
代码 11.1 |
# chown -R vpopmail:vpopmail /var/www/localhost/htdocs/igenus |
12. 配置 igenus (第一步)
建立 igenus 运行所需要的临时目录。
代码 12.1 |
# mkdir /tmp/igenus # cd /tmp # chmod -R 0755 igenus # chown -R vpopmail:vpopmail igenus # cd /var/www/localhost/htdocs/igenus |
修改/var/www/localhost/htdocs/igenus/config/config_inc.php,如下:
代码 12.2: /var/www/localhost/htdocs/igenus/config/config_inc.php |
$CFG_BASEPATH = "/var/wwww/localhost/htdocs/igenus"; $CFG_MYSQL_HOST = 'localhost'; $CFG_MYSQL_USER = 'vpopmail'; $CFG_MYSQL_PASS = 'yourpasswd'; // 此处密码为vpopmail数据库密码 $CFG_MYSQL_DB = 'vpopmail'; $CFG_TEMP = "/tmp/igenus"; |
为使用 igenus 的其他功能修改 vpopmail 数据库。同时,如果之前你已经用 vadddomain 建立了登录域,那么需要删除该域。
代码 12.3 |
# /var/vpopmail/bin/vdeldomain yourdomain # mysql -u root -p > use vpopmail; > drop table vpopmail; > quit |
然后导入 igenus 包中自带的 sql 文件,导入igenus 需要的几个表:
代码 12.4 |
# mysql -u root -p vpopmail < /var/www/localhost/htdocs/igenus/docs/iGENUS.sql |
注释:导入工作也可以使用 phpmyadmin 等完成。 |
成功后查看 vpopmail 数据库应该包含以下表:address,admin,dir_control,lastauth,limits,logs,message, personal ,stow,valias,vpopmail。
13. 修改php.ini
修改 /etc/php/apache2-php4/php.ini 以下内容:
代码 13.1: /etc/php/apache2-php4/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 |
14. 修改apache2.conf
修改 /etc/apache2/conf/commonapache2.conf:
代码 14.1: /etc/apache2/conf/commonapache2.conf |
User vpopmail Group vpopmail |
警告:这样做有一定的安全风险,请自行决定。 |
重启 apache2。如果重启 apache2 后发现你的其他 web 程序出现问题,你也许需要更改相应的文件为 vpopmail:vpopmail所有。
15. 建立虚拟登录域
代码 15.1 |
# /var/vpopmail/bin/vadddomain microweb.3322.org Please enter password for postmaster: (输入 postmaster 密码) enter password again:(再次输入密码) |
检查 /var/vpopmail/domains,下面应该可以看到建立的域名。如果要删除域,务必要使用 vdeldomain 命令,不要直接删除相应的目录。
16. 登陆 qmailadmin 建立用户
打开浏览器,键入地址:http://microweb.3322.org/cgi-bin/qmailadmin/ 。以 postmaster 登陆,域为 microweb.3322.org,密码为上面设置的密码。然后可以根据页面提示新增用户。
注释:你也可以使用 /var/vpopmail/bin/vadduser 命令添加用户。 |
17. 配置 igenus (第二步)
由于 vpopmail 采用的是 .maildir 格式的邮箱,而 igenus 用的是 Maildir 格式的邮箱,因此现在登陆 igenus 会出现很多错误。所以我们需要做一点变通:
代码 17.1 |
# cd /var/vpopmail/domains/${yourdomain}/${youruser} # ln -s .maildir Maildir # chown vpopmail:vpopmail Maildir |
这样 igenus 就可以读取用户邮箱了。
现在就可以打开http://yourdomain/igenus 用先前建立的用户登陆你的 igenus 了。