1. 序言
不论你是为系统后台程序、单一的服务器或域名地址,还是为多个虚拟域名进行电子邮件派发传递, qmail都可以通过简单的设置满足你的需求。本指南将在着重说明远程访问和加密传输的基础上指导你完成上面所说的所有工作。
本指南将帮助你使用qmail,courier-imap, vpopmail和horde/imp。而这些内容也将涉及到 daemontools, ucspi-tcp, mysql, apache和mod_php。在相关核心组件中,qmail提供了核心mta功能, courier-imap提供了远程邮箱IMAP访问服务,vpopmail提供了虚拟域名管理,horde/imp则提供了webmail访问。
在emerge相关软件包之前,你需要激活以下的USE变量。如果你已经emerge了上述软件包中的任何一个,你也许需要再次emerge它们。USE="maildir ssl imap mysql"。另外,如果为你的webmail使用 horde/imp,你需要在emerge mod_php之前使用USE="nls"
注释: 本指南为分步骤进行,不论什么时候只要你认为完成了设置,你都可以不必再继续。 |
在课程的最后一步,你只需把所有的工作交给qmail来完成。当然,你可以使用许多其他的软件包来构建你的e-mail服务器系统。现在你该决定qmail是否适合你了,我们还为你准备了另外一个围绕 Postfix进行的有趣的指南 ,或者你也可以研究一下exim。对于你来说,你应该为你自己选择一个最佳的解决方案;而对于我们来说,则是为你展示如何使用qmail。
2. qmail (面向本地)
代码 2.1: Emerge qmail |
# emerge qmail |
重要: 本指南是围绕qmail-1.03-r13 或更新的版本来进行讲解的。它对于以前的版本同样适用吗?也许吧。你应该升级一下你的qmail吗?是的――只要你确信这个指南能够正确指引你。 |
警告: 如果你遇到了the virtual/mta package conflicts with another package这样一条提示,你便需要unemerge系统上其他的MTA。要知道是哪些软件包导致了冲突,请运行emerge qmail -p。 |
Emerge qmail的同时也会emerge ucspi-tcp和daemontools。如果愿意的话你可以研究一下 ucspi-tcp和daemontools。daemontools主要负责将qmail作为服务来管理,而ucspi-tcp则负责管理引入到qmail服务上的的TCP连接。
首先我们来做一些安装后的相关设置。
代码 2.2: qmail的快速设置 |
(自定义你的个人信息) |
qmail的设计在很大程度上注重其安全性,因此它不会给root账号发送任何邮件。因此现在你需要在你的系统上指定一个可以代替root的帐号来接收邮件。在这篇指南中,我将使用'vapier'用户来进行相关的设置说明。
代码 2.3: 设置非root账号 |
# cd /var/qmail/alias |
现在启动并运行qmail邮件派发服务。
代码 2.4: 启动qmail邮件派发服务 |
# rc-update add svscan default |
我们想知道qmail是否可以正常工作,下面来对它进行快速测试。
代码 2.5: 测试邮件派发服务 |
# ssh vapier@localhost |
完成了!现在你拥有了一个可以处理本地计算机或者系统后台程序/用户有关邮件发送请求任务的邮件系统。
警告: 如果你没有收到邮件或者在日志文件中(查看 /var/log/qmail/)看到有关 'localhost.localhost'奇怪的错误信息,这说明你的域名或dns没有设置好。在默认情况下, qmail会利用hostname --fqdn的输出信息。如果在你的机器上这条命令输出的是 'localhost',那么请检查/etc/hostname, /etc/hosts, 你的dns三者是否都已经设置好。完成这项工作后,编辑 /var/qmail/control/ 下面的配置文件。如果你需要更多的帮助,请参考下面的样例文件。 |
代码 2.6: /var/qmail/control/ 下的二级域名设置样例文件 |
# hostname --fqdn |
代码 2.7: /var/qmail/control/ 下的三级域名设置样例文件 |
# hostname --fqdn |
3. vpopmail
代码 3.1: Emerge vpopmail |
# emerge vpopmail |
重要: 本指南是围绕vpopmail-5.4.0_rc1 或更新的版本来进行讲解的。它对于以前的版本同样适用吗?也许吧。你应该升级一下你的vpopmail吗?是的――只要你确信这个指南能够正确指引你。 |
vpopmail相对qmail来说需要多花一点时间来进行设置。由于vpopmail需要mysql才能运行,因此我们首先要启动并运行mysql,然后我们便可以设置vpopmail数据库并进行后面的步骤。在做这一步之前,你应该确保mysql已经进行了正确的emerge和相关设置。请注意,我对vpopmail设置的口令是'vpoppw',当然你应该选择一个不同的口令。。
代码 3.2: 在mysql中设置vpopmail |
# rc-update add mysql default如果你是第一次emerged mysql, 请在启动mysql服务器之前务必运行 |
警告: 如果你遇到了有关mysql/vpopmail的权限问题,你可能需要重新启动你的mysql。完成这一工作只需要运行 /etc/init.d/mysql restart。 |
现在,vpopmail可以运行了。在这篇指南中,我们将为"wh0rd.org"域名建立虚拟主机。这就是说,我们需要在vpopmail中指定虚拟主机所对应的域名。与此同时,我们也将快速添加一个名为 'vapier' 的帐号。
代码 3.3: 添加域名 |
# source /etc/profile(只有当你运行下面的vadddomain 得到"command not found"的时候你才有必要执行这个步骤) |
每在vpopmail中创建一个域名都将生成一个名为'postmaster'的帐号。在这里我们为postmaster 账号设置的口令是'postpass'。在vpopmail能够完全正常工作之前,我们需要通过courier来接收邮件、通过qmail和SMTP来发送邮件。
4. Courier POP/IMAP
代码 4.1: Emerge courier-imap |
# emerge net-mail/courier-imap |
重要: 你必须在emerge vpopmail之后emerge courier-imap,这样authvchkpw模块就将被创建。 |
重要: 本指南是围绕net-mail/courier-imap-2.1.2-r1或更新的版本来进行讲解的。它对于以前的版本同样适用吗?也许吧。你应该升级一下你的qmail吗?是的――只要你确信这个指南能够正确指引你。 |
现在进行一些基本的安装后的设置。只有当你准备使用SSL加密通信(你应该使用它!)的时候这些步骤才是必要的,否则,请直接跳到下面命令列表中每项设置的的最后两步,并且去掉init 脚本中的'-ssl'后缀。
代码 4.2: POP3/SSL的快速设置 |
# cd /etc/courier-imap |
代码 4.3: IMAP/SSL的快速设置 |
# cd /etc/courier-imap |
现在你的邮件客户端应该可以登录到主机上收发邮件了。对于我来说,我可以用账号'vapier@wh0rd.org' 以及口令'vappw'进行登陆。
5. qmail (面向外界)
现在开始启动并运行SMTP,同时确认一下我们没有为垃圾邮件制造另一个漏洞。
代码 5.1: 启动 qmail SMTP 服务 |
# cd /var/qmail/control/ |
如果你还没有对qmail的配置文件进行调整,qmail将接受所有来自wh0rd.org虚拟域名和本地计算机用户的邮件。此外,qmail只为那些通过127.0.0.1发送邮件的用户以及通过了vpopmail身份验证的用户处理邮件发送请求。因此在使用邮件客户端发送邮件时,请务必选择类似“服务器需要身份验证”的选项。对于我来说,我使用用户名'vapier@wh0rd.org'和口令'vappw'进行登录。最后,你还需要设置邮件客户端为SMTP打开SSL/TLS选项,否则你将无法通过qmail的身份认证。
6. Horde / IMP Webmail Client
虽然现在有相当多的webmail客户端(而且你可以免费使用它们),但我更偏向于使用由Horde 框架构成的IMP Webmail Client。其中最主要的理由是Horde可以为你提供方便的Webmail访问,并且你可以通过添加插件来处理诸如地址簿、日历、计划任务等工作。如果这些都不足以吸引你,那么也许你可以访问一下 Horde的官方网站。
好了! 现在,我们需要emerge IMP.
代码 6.1: Emerge IMP |
# emerge horde-imp |
重要: 本指南是围绕horde-2.2.4和horde-imp-3.2.2进行讲解的。CVS版本(也就是即将发布的下一个新版本)可能在相关配置设置上有较大的不同。 |
除非你已经很清楚的知道Horde该如何设置,否则初次配置Horde并不是那么容易。幸运的是,我知道该如何去做,因此你可以轻松的完成这项工作。
代码 6.2: Horde的快速设置 |
# cd /var/www/localhost/htdocs/horde/config/ |
注释: 由于某种原因也许你想更改'webmaster'的e-mail账号,如果是这样的话,你需要通过vpopmail来添加这个用户(或者参看下面有关qmailadmin的叙述)。 |
现在开始设置IMP。
代码 6.3: IMP的快速设置 |
# cd /var/www/localhost/htdocs/horde/imp/config/ |
最后,启动Apache,开始使用webmail。
代码 6.4: 运行apache |
# nano /etc/conf.d/apache2(取消 APACHE2_OPTS="-D SSL -D PHP4" 注释) |
警告: 你也许应该考虑一下强制horde用户通过https进行连接。这虽然算不上什么重要的问题,但为了安全因素你最好对此进行设置。 |
要测试你的IMP设置,启动Web浏览器然后访问http://localhost/horde/ (或者将localhost换成你正在进行设置的服务器)。你应该可以看见一个欢迎页面并且你可以从这个页面登陆 Horde。对于我的设置来说,我只需要使用'vapier@wh0rd.org' 和 'vappw' 作为用户名和口令就可以进行登录了。
现在,Hoede和IMP都已经设置好了。但也许你应该回头看看你的配置文件目录并且按照你所需要的进行优化。
7. 额外的软件包
qmailadmin
我首先推荐的软件包是qmailadmin. 它是一个用于管理虚拟域名的基于web的管理界面。你只需要简单的emerge net-mail/qmailadmin 然后在你的web浏览器中打开http://localhost/cgi-bin/qmailadmin 就可以开始使用它了。这个软件会使你的工作变得格外轻松。
qmHandle
如果你在处理qmail队列并且在对某些情况进行排错时遇到了麻烦,我建议你使用qmHandle。它是一个允许你查看并且管理 qmail消息队列的perl小程序。同样,你需要做的仅仅是emerge net-mail/qmhandle。
horde附加软件
我想强烈推荐其他的一些Horde相关应用程序。Turba, Kronolith和Nag 可以在短时间内让IMP工作得更好。它们的配置过程与IMP比较类似,因此在这项工作上你应该不会遇到什么大碍。记得编辑 Hoede配置目录下的registry.php以便使这些新程序可以在horde管理页面的底部显现。
ucspi-tcp
qmail在处理引入到服务器的连接时会用到ucspi-tcp。如果你想自定义这些过滤规则,请参看/etc/tcprules.d/ 下面的配置文件。在这里你可以找到与每个服务相对应的两个相关文件,一个是配置文件(如tcp.qmail-smtp)另一个是ucspi-tcp使用的这个配置文件编译后的文件(如tcp.qmail-smtp.cdb)。当你对这两个文件进行更新后,你需要重建这些文件的二进制版本。要完成这项工作,只需要运行 tcprules tcp.qmail-smtp.cdb tcp.qmail-smtp.tmp < tcp.qmail-smtp即可。每当qmail接收到一个连接,其编译过的规则文件都会被重新读取一次,因此你不需要重新启动服务。
qmail-scanner
如果你想在你的服务器上实现内容过滤(垃圾邮件或者病毒扫描),那么你需要一个与默认不同的队列处理程序。qmail-scanner可以比较好的完成这一工作,你需要做的只是emerge net-mail/qmail-scanner,然后编辑/etc/tcprules.d/tcp.qmail-smtp 文件。
重要: qmail-scanner的build过程并不是令人愉快的,因为在emerge qmail-scanner之前你的系统中必须已经安装了相应的软件包,比如SpamAssassin 以及/或者 Clam AntiVirus。要获得更多信息请参阅以下的相关内容。 |
代码 7.1: 更改queuer |
# cd /etc/tcprules.d/ |
如果你想对垃圾邮件过滤和病毒过滤进行设置,请参阅以下的内容。你可以修改 /var/qmail/bin/qmail-scanner-queue.pl来进行一些自定义设置。
SpamAssassin
SpamAssassin是最好的开源垃圾邮件过滤程序之一. 你只需运行emerge dev-perl/Mail-SpamAssassin 来进行安装. 这个软件有command line(命令行版本)和client/server(客户端/服务器端)版本。 如果你的服务器处理的邮件不多,那么command line(命令行版本)就可以满足你的需要了;但是如果你的服务器需要处理大量的邮件,你则需要选择client/server(客户端/服务器端)版本。
代码 7.2: SpamAssassin的快速设置 |
# nano /etc/mail/spamassassin/local.cf(以下的选项设置为原始最低需求:) |
重要: 如果在emerge qmail-scanner之前你的系统中没有安装SpamAssassin,那么现在你需要重新 emerge qmail-scanner。qmail-scanner的build过程并不令人愉快,而且在build的过程中它只会将那些已经检测到的软件包加入到它的功能特性中去。 |
现在,所有的邮件都会通过qmail-scanner进行传输,同时SpamAssassin会对这些邮件进行扫描。
Clam AntiVirus
与SpamAssassin类似,Clam AntiVirus 也有两个版本,下面我将为你说明如何对client/server(客户端/服务器端)版本进行快速设置。但首先,你需要emerge net-mail/clamav。
代码 7.3: Clam AntiVirus的快速设置 |
# nano /etc/conf.d/clamd(设置 START_CLAMD=yes) |
重要: 如果在emerge qmail-scanner之前你的系统中没有安装Clam AntiVirus,那么现在你需要重新 emerge qmail-scanner。qmail-scanner的build过程并不令人愉快,而且在build的过程中它只会将那些已经检测到的软件包加入到它的功能特性中去。 |
现在,所有的邮件都会通过qmail-scanner进行传输,同时 Clam AntiVirus 会对这些邮件进行扫描。
8. 最后的提醒
我没有什么最后的提醒,除非你在阅读本指南的时候遇到了了什么困难,如果你发现这个教程有什么 Bug,请通过Gentoo's Bugtracking Website 来与我进行联系。如果你有任何好的技巧可以为本指南增色,也请你务必给我来信。我很喜欢qmail,因此我想让这个指南更加丰富以便让大家更好的体验MTA。
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |