内容简介:本指南将告诉你如何用qmail/vpopmail/courier-imap/qmail-scanner/igenus来打造一个邮件系统。

本文部分内容翻译自Gentoo Forums。您可以访问上面的地址查看最新版本。

首先设置好 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 了。

03-14 04:00