safecat 保存邮件. 也可以完全跳过procmail, 使用maildrop. 最后, procmail 认为邮件将被接收到mbox格式的邮箱, 常规的qmail传送程序仅仅包括实际的邮件, 而不包括"From"起始行. 这里可以使用preline 命令来格式化邮件, 以保证procmail的要求. 上面链接提到的脚本就包括了 preline. 举一个例子, 假设用户"dave"希望用procmail来处理他的邮件. 他的系统管理员设置procmail来传送邮件到默认的$HOME, 并且已经配置好了上面的退出码翻译脚本程序, 假设名字是 /usr/local/bin/qmail-procmail, 那么他的.qmail文件应该是这个样子的: |/usr/local/bin/qmail-procmail 5.2. POP 和 IMAP 服务器 qmail包括一个POP服务器, qmail-pop3d, 不过并没有作为qmail 安装过程的一部分. 你可以选用其他POP或者IMAP服务器, 尽管他们大多数都是为Sendmail编写的, 在qmail下运行这些服务器时, 需要作一些额外的修改工作. 5.2.1. qmail-pop3dqmail-pop3d 是qmail自带的很不错的POP服务器. 很多qmail站点都使用它作为POP服务器. 它是模块化的, 可以通过不同的认证模块支持多种认证方案. 注意: qmail-pop3d只支持maildir格式的邮箱, 所以如果你的用户登录到POP服务器并且在本地运行MUA程序, 这些程序必须支持maildir格式的邮箱. 如果所有用户都是通过POP来读取邮件, 那么服务器端的邮箱格式就不是什么问题了.
5.2.1.1. qmail-pop3d的结构 qmail-pop3d服务器包括三个模块: - qmail-popup: 取得用户名/密码
- checkpassword: 鉴别用户名/密码
- qmail-pop3d: POP后台服务程序
典型的, qmail-popup由inetd 或者 tcpserver运行, 在110端口监听, 一旦有连接, 它将提示输入用户名和密码, 然后它调用checkpassword来校验用户名/密码, 通过校验后调用qmail-pop3d. 5.2.1.2. 安装 qmail-pop3d 1. 完整安装并测试qmail. 如果你希望所有用户都可以用 POP 方式访问邮箱, 那么首先确定 defaultdelivery 文件内容已经设置为 ./Maildir/. 如果你是按照本文的安装小节安装的qmail, /var/qmail/rc脚本已经被安装到恰当位置, 那么在文件 control/defaultdelivery 中已经配置了这个参数. 如果不是这样安装的, 则这个参数可能是在/var/qmail/rc 的 qmail-start 命令行上实现的. 2. 从http://www.qmail.org/top.html#checkpassword下载checkpassword 程序. 如果你不需要其他特别的东西, 也可以在http://cr.yp.to/checkpwd.html 下载标准的checkpassword程序. 3. 按照安装指导编译并安装checkpassword程序. 确定你安装程序到 /bin/checkpassword 下. 注意: 如果你安装的是标准checkpassword, 解开源代码之后别忘记打修补错误返回码的补丁: patch < /usr/local/src/netqmail-1.05/other-patches/checkpassword-0.90.errno.patch
4. mkdir /var/qmail/supervise/qmail-pop3d 5. 创建一个/var/qmail/supervise/qmail-pop3d/run 脚本, 包括如下内容: #!/bin/shexec /usr/local/bin/softlimit -m 2000000 \ /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup \ FQDN /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>%26amp;1 这里 FQDN 是你建立的POP服务器的完整的有资格的正式域名, 例如, pop.example.net.
注意: 由softlimit命令 指定的内存使用限度是可以依赖于你是用的的硬件平台和操作系统作适当提高的. 当连接到110端口失败或者POP3连接以难以理解的方式失败情况下, 或者你查看到如下错误信息: /usr/local/bin/tcpserver: error while loading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory 试着将这个参数提高到3000000或者5000000.
6. mkdir /var/qmail/supervise/qmail-pop3d/log 7. 创建包括以下内容的/var/qmail/supervise/qmail-pop3d/log/run 文件. #!/bin/shexec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \ /var/log/qmail/pop3d 8. 建立log日志文件夹并且设置相应的run脚本, 将脚本链接到 /service 目录: chmod +t /var/qmail/supervise/qmail-pop3d # if daemontools < 0.75 mkdir /var/log/qmail/pop3d chown qmaill /var/log/qmail/pop3d chmod 755 /var/qmail/supervise/qmail-pop3d/run chmod 755 /var/qmail/supervise/qmail-pop3d/log/run ln -s /var/qmail/supervise/qmail-pop3d /service 9. 将下面内容加入qmailctl脚本的"start"部分 if svok /service/qmail-pop3d ; then svc -u /service/qmail-pop3d /service/qmail-pop3d/log else echo qmail-pop3d supervise not running fi 10. 将下面内容加入qmailctl脚本的"stop"部分 echo " qmail-pop3d" svc -d /service/qmail-pop3d /service/qmail-pop3d/log 11. 将下面内容加入qmailctl脚本的"stat"部分 svstat /service/qmail-pop3d svstat /service/qmail-pop3d/log 12. 将下面内容加入qmailctl脚本的"pause"部分 echo "Pausing qmail-pop3d" svc -p /service/qmail-pop3d 13. 将下面内容加入qmailctl脚本的"cont"部分 echo "Continuing qmail-pop3d" svc -c /service/qmail-pop3d 14. 将下面内容加入qmailctl脚本的"restart"部分 echo "* Restarting qmail-pop3d." svc -t /service/qmail-pop3d /service/qmail-pop3d/log
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1819 20 21 22 23 24 25 26 27 28 29 30 31 下一页
上一篇:Postfix Ecartis HOWTO - 集成ecartis + Postfix 下一篇:Maildrop的若干常见问题集锦(FAQ)
|