首先,确保sendmail 已安装。Sendmail 负责分类内部和外部邮件,并且会缓冲外发邮件,直到可以转发为止。
Sendmail 的配置基于/etc/sendmail.cf 文件。一个适用于 ISP 用户的示例可以在
ftp://ftp.sol.no/user/egilk/sendmail.cf
找到。这个示例基于procmail 作为投递代理,但可以很容易地更改为使用deliver。
当然,需要拥有一个官方域名地址用于外发邮件,这需要在sendmail.cf 中指定。
# who I masquerade as (null for no masquerading)
DMacme.xz
这假设您本地的用户名与您在 ISP 处的用户名相同。如果不同,只需指定全名即可。
DMdick@acme.xz
Sendmail 现在配置为直接发送给收件人。为了避免在连接到接收端速度慢且不稳定的情况下进行长时间和重复的连接,通常最好使用您的 ISP 作为缓冲区。这可以通过 DS 规范来指定。
# "Smart" relay host (may be null)
DSmail.acme.xz
请注意,sendmail 对sendmail.cf 中制表符的处理有些敏感。您可能需要使用vi 编辑器来确保这些制表符保持不变。电子邮件接收通常可以通过 POP3 协议执行,该协议可以在每次建立连接时启动。一个用于测试的脚本是
sendmail -q
popclient -3 -v mail.acme.xz -u dirk -p "PrettySecret" \
-k -o /usr/spool/mail/dirk
此脚本可以在 PPP 连接建立后启动。请注意,此脚本仅用于测试,因此请确保在运行期间本地邮箱保持不变。-k
选项意味着邮件保留在 ISP 邮箱中,您只是获得邮件的副本。一旦您确信您的设置正常工作,您当然会希望删除此选项。请注意,密码将显示在命令行中。另请注意,popclient 正在变得过时,您应该考虑使用fetchmail 来代替。
一个更安全、更好的脚本版本可以在
ftp://ftp.sol.no/user/egilk/pop-script.tar.gz 找到。
这个版本的脚本需要procmail 已安装,但无论如何您都不会后悔安装它。大多数发行版都包含它,否则您可以尝试
ftp://sunsite.unc.edu/pub/Linux/system/Mail/mailhandlers/procmail-3.10-2.tar.gz
Procmail 是一个简单而灵活的工具,可以根据各种标准对收到的电子邮件进行分类。除了能够处理诸如休假消息之类的自动化任务之外。
请注意,当我们像本例中那样直接使用 procmail 时,情况与 procmail 文档中描述的有所不同。不需要 .forward 文件,我们也不需要 .procmailrc 文件。后者仅在我们想要对邮件进行分类时才需要。
用于阅读和发送电子邮件的用户界面可以在以下程序中找到,例如pine 或elm。
替代方案: Fetchmail 最近已成为 popclient 的改进替代品。最新版本可从
ftp://ftp.ccil.org/pub/esr/fetchmail/fetchmail-3.3.tar.gz 获取。
替代方案: 对于普通的拨号 ISP 用户来说,实际上没有必要激活 sendmail 守护进程。为了减少资源使用,并可能解决其他问题,可以注释掉 sendmail 的任何启动项,这通常可以在 /etc/rc.d/rc.M 中找到(这因发行版而异)。
替代方案: 可以使用更简单的smail 来代替 sendmail。您可以在Linux 网络管理员指南中找到关于它的良好描述(以及此处提到的大多数其他内容)。
替代方案: 还有一个 m4 宏包,用于创建新的/etc/sendmail.cf 文件。对于简单的安装,修改现有配置可能同样有效。
替代方案: 还有更简单但灵活性较差的电子邮件处理替代方案。例如,Pine 只要配置正确就可以独立运行。甚至可以使用某些网络浏览器的新版本。
替代方案: 许多人对 Emacs 伴侣 Gnus 作为电子邮件和新闻处理器非常热情。更多信息可以在
http://www.ifi.uio.no/~larsi/ 找到。
替代方案: popclient 的替代方案是 pop-perl5。它可以从
ftp://sunsite.unc.edu/pub/Linux/System/Mail/pop-perl5-1.1.tar.gz 获取。