当你在建立Sendmail或者任何其他标准SMTP服务器时,重要的是要记住这是在你的Linux主机和其他邮件服务器之间进行信息传输的唯一手段。为了使你的用户能找回他们的信息,你需要建立一项POP3或者IMAP服务。Qpopper是一个通用的POP3实施选择,你可以安装它并快速简单的建立服务。只需要下面简单的几步。
用Sendmail安装Qpopper
在这篇文章中描述了Qpopper了安装的步骤,我将假设你已经安装了Sendmail。不过,Qpopper将和任何其他标准的SMTP服务器兼容。
首先,从Qpopper的Web站点下载qpopper4.0.3.tar.gz这个最新的资源包。你在这个站点上还会发现大量的文件和软件文档。在下载这个版本之后,你需要用tar
xpfz这个命令将之解压。创建新的目录qpopper4.0.3并执行./configure,然后就可以开始安装了。
如果你在以前用过,或许你有超过默认安装之外的需求,确信阅读了文档以找到所有可编辑的选项。例如,你可能更喜欢将Qpopper作为一个独立的后台邮件程序,而不是从inetd或xinetd中运行。要想做到这些,你需要运行./configure并用选项--enable-standalone。
当把Qpopper作为一个独立的后台程序时,为了在导入时能启动正确的服务,你需要创建一个脚本。除非你是从诸如RPM或DEB这样的特定版本档案安装,否则Qpopper在缺省情况下安装在/usr/local/lib下。如果从原始资源开始安装,你也需要在/etc/inetd.conf文件中添加下列的行:
pop3 stream tcp nowait root /usr/local/lib/popper qpopper -s
作为选择,如果你在使用xinetd.conf,这是最新Red Hat
7.x的缺省安装,确信在/etc/xinetd.d/目录下创建了名为pop3的文件,其内容如下:
service pop3
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/local/lib/popper
server_args = qpopper -s
port = 110
}
当增加一项新的服务时,先检查你的防火墙过滤规则和/etc/hosts.allow文件。你的防火墙应该允许在110端口直接接受TCP请求,这是POP3服务的端口,并且你的hosts.allow文件应该有ALL这一行。同样的,如果是
Red
Hat,请检查/etc/xinetd.d/并确保没有已存在的POP3服务器。通过一个标准安装选项,使得预配置变成可能,所以如果你在以后才添加Qpopper,确信已经从xinetd后台程序中删除了所有诸如/etc/xinetd.d/ipop3这样的指引。
建立Qpopper
一旦Qpopper安装完成,你需要开启服务。如果你使用的是inetd或xinetd,只需通过执行kill –HUP
就可以简单的重启inetd或xinetd后台程序。你可以通过运行ps aux | grep inet来确定进程ID(PID)。
如果已经将Qpopper安装在单独模式下,你需要通过在/etc/init.d/pop3文件中放置参数
-S来执行你已经创建的脚本。例如,-S标记告诉Qpopper运行在服务器模式下,这样可以有助于提高服务器的输入/输出性能。如果不是在服务器模式下,Qpopper将根据优先访问原则拷贝邮件文件并且在做了相应调整之后将之拷回,例如电子邮件删除。在服务器模式下,Qpopper扫描队列而不是拷贝,并在用户的任务中直接处理,这对需要支持大量用户的POP3服务器尤为重要。
当运行一个POP3服务器时,表格1所有你可以用的命令选项。例如,可以从110端口远程登陆你的服务器,手工操作,删除大型的信息。对这些选项有一个全面的了解将有助于快速解决用户的电子邮件故障。
USER 在这个命令之后输入你的用户ID,例如USER webmaster。
PASS 为这个帐户输入密码,形式为 PASS 密码。
QUIT 这个命令结束当前任务并删除标记的邮件。
LIST 用这个命令可以列出信息和大小。
RETR 恢复某个信息号的特定邮件。
DELE 这个命令删除某个信息号的特定邮件。
TOP 显示特定邮件的前N行(TOP <# lines>).
Qpopper通过/etc/passwd和/etc/shadow依赖于正在应用的标准系统验证机制。所以,为了让用户可以使用POP3服务,在本地系统上添加是必需的。既然你可能已经运行了一个诸如Sendmail这样的邮件代理,这件事情实际上已经做好了。
发现并解决Qpopper的故障
你安装的任何服务在第一次运行的时候,可能总会出现一些问题。一个很好的办法就是服务器对登陆其110端口的POP3请求能够应答。你可以试试从本地和远端站点进行登陆。你将看到这些实验中命令行的例子。
如果有大量的用户联接到你的服务器以获取电子邮件的话,你可能需要通过改变等待最大值来增大inetd的超时值,可以这样做:
pop3 stream tcp nowait.400 root /usr/local/lib/popper qpopper
-s
当大量的任务在同时进行时,这可以避免Qpopper进入死循环。当开始登陆时,你的日志文件开始记录服务,这时你可以改变我在上面提到的超时值。
另一个问题就是在较大的站点经常出现邮件锁定。当一个客户向服务器打开一个POP3任务时,邮件锁定这个文件就创建了。它阻止其他修改邮箱的联接。有时候,一个用户非正常的断开联接,Qpopper不能把在任务之初建立的临时文件队列删除。这经常在/var/spool目录下以.user.pop的形式出现。服务器通常检测过时的邮件锁定并删除他们;然而,在很少的情况下,为了允许再次访问POP3服务器,管理员可能需要手工删除这些文件。
总结
如果想为用户提供完全的电子邮件功能,在你的Sendmail服务器中添加POP3服务是重要的一步。通过Qpopper,这项任务就变得相当的简单。迅速下载,安装,并重启和运行。它也可以和其它标准SMTP服务器一起运行。