welcome: please sign in
location: EximSmarthostHowto

在 Debian 机器上配置 Exim Smarthost

/!\ TODO 本文只介绍了 Smarthost 的一种用法,也缺少参考资料。

本文讲述 Smarthost 的一种应用情境。

这样做的动机一般是简化脚本文件的发信。配置好之后就可以在你的服务器上 直接用 mail 工具向外域(即不是 localhost 的域)发信,而不需要配置一个“真正的”SMTP 邮件服务器。

在 Debain 机器上用 Exim 可以很容易地做到这一点。

  1. 安装 Exim。

    # aptitude install exim4

    如果已经安装了,就用 dpkg-reconfigure 重新配置它:

    # dpkg-reconfigure exim4-config

    (exim4-config 是专门用来重配置 exim 的一个虚拟包。)

  2. 配置 Exim。在接下来的 Debian 配置界面中,注意以下配置。其它配置均可用默认值。

    • 第一步选择 mail sent by smarthost 开头的(具体哪一个无所谓啦)。

    • Mail Server configuration 这一步,IP address or host name of the outgoing smarthost: 下面填入远程 SMTP 服务器的地址。如果它使用的不是默认的 25 端口,在地址后面加上 ::port,如 smtp.example.net::123。注意是两个冒号,这是非常奇怪的……

  3. 输入帐号信息。编辑 /etc/exim4/passwd.client,加入远程服务器、你的帐号和密码这些信息,形如

    target.mail.server:login:password
    如上所示,一行有三个字段,用冒号分隔。其中
    • target.mail.server 字段是 DNS 反解之后的邮件服务器域名。支持 shell 风格的通配符。如果你不确定,可以先填成 *,然后分析日志文件中获取正确的域名。日志文件的分析下面会提到。

    • login 字段即邮箱帐号名。一般是包括 @ 后面的部分的。

    • password 字段即密码。如果含有冒号的话,我怀疑会有错。所以推荐设一个不含冒号的密码……

  4. 测试

    # tail -f /var/log/exim4/mainlog
    (在另一个终端发信)
    # mail receiver@example.com
    如果发信成功,你会看到这样一段:
    2011-11-26 01:25:24 xxxxxxxxxxxx => receiver@example.com R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [209.85.225.108] X=TLS1.0:RSA_ARCFOUR_SHA1:16 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com"

    在此例中使用 Gmail 作为远程 SMTP 服务器,它反解之后的域名是 gmail-smtp-msa.l.google.com。如果你在上述 passwd.client 上面没有填入域名字段,现在可以填进去。我不确定域名的前几个部分会不会有变动;我推荐填入 *.google.com


CategoryHowto

EximSmarthostHowto (2011-12-31 14:20:52由xiaq编辑)