内容简介:本指南将告诉你如何用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
# 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
注释:导入工作也可以使用 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 了。