这几日又弄了一下,有了一些进展:
1、中转的域名/主机的设置:如果你想用本地的 exim4 代你发信件(邮箱的 smtp 服务器填 exim4 服务器的 IP),而不是登录到其他邮件服务器发信,可以设置中转主机为本地网段,如 192.168.0.0/16 。虽然本地中转发邮件的发信过程几乎即时完成,但只是已经发到本地 exim4 服务器上,不能保证一定能顺利转发出去,有时会遇到拒收的情况,要小心求证。
2、关于 exim4 的用户验证 (auth):先设定两个宏,让 exim4 支持 TLS 认证和明文认证,单一配置文件的可新建或编辑 /etc/exim4/exim4.conf.localmacros ,分离配置文件的可以用 /etc/exim4/conf.d/main/00_localmacros 文件,加入两句
复制内容到剪贴板
代码:
MAIN_TLS_ENABLE = true
AUTH_SERVER_ALLOW_NOTLS_PASSWORDS = true如果只用明文验证,编辑 /etc/exim4/exim4.conf.template 或 /etc/exim4/conf.d/auth/30_exim4-config_examples 文件,将 plain_server 和随后 login_server 段的注释去掉即可。
如果想用 saslauthd 提供的安全验证(TLS),同样是编辑上面的两个文件,不过是将 plain_saslauthd_server 和 login_saslauthd_server 段的注释去掉,并且要安装和配置 saslauthd。
1)先安装 openssl ,生成 exim4 的证书
复制内容到剪贴板
代码:
apt-get install openssl
/usr/share/doc/exim4-base/examples/exim-gencert2)安装和配置 saslauthd
复制内容到剪贴板
代码:
apt-get install sasl2-bin编辑 /etc/default/saslauthd ,将 START=no 改成 START=yes
3)因为 exim4 要用到 saslauthd 的服务需 Debian-exim 用户在 sasl 用户组下
复制内容到剪贴板
代码:
adduser Debian-exim sasl4)重启 saslauthd 服务
复制内容到剪贴板
代码:
/etc/init.d/saslauthd restart为使 auth 生效,更新配置并重启 exim4:
复制内容到剪贴板
代码:
update-exim4.conf
/etc/init.d/exim4 restart网上说用户密码应该用 /usr/share/doc/exim4-base/examples/exim-adduser 设置,密码文件为 /etc/exim4/passwd ,但照我的试验是只认用户的系统密码。saslauthd 部分参考 http://wiki.ubuntu.org.cn/UbuntuHelp:Exim4
我用本地的邮件系统做了不同发信方式的试验,都是用本地邮箱 icatman@hotend.cn 发到 icatman@hotend.cn,服务器设为本地的动态域名,试验结果如下:
复制内容到剪贴板
代码:
不用SSL,不用密码发信 ok
2008-02-21 14:27:46 1JS4uI-0001TU-5w <= icatman@hotend.cn H=(chenqj) [59.37.219.67] P=smtp S=671 id=665434F9FC3945FA82F3597E63D55089@chenqj
2008-02-21 14:27:46 1JS4uI-0001TU-5w => icatman <icatman@hotend.cn> R=local_user T=mail_spool
2008-02-21 14:27:46 1JS4uI-0001TU-5w Completed
不用SSL,用密码发信 ok
2008-02-21 14:29:59 1JS4wR-0001Ta-09 <= icatman@hotend.cn H=(chenqj) [59.37.219.67] P=esmtpa A=login_saslauthd_server:icatman S=669 id=F9832FC58E36412A8A25F88915C93FF9@chenqj
2008-02-21 14:29:59 1JS4wR-0001Ta-09 => icatman <icatman@hotend.cn> R=local_user T=mail_spool
2008-02-21 14:29:59 1JS4wR-0001Ta-09 Completed
使用SSL,不用密码发信 ok
2008-02-21 14:33:22 1JS4zi-0001Ti-QX <= icatman@hotend.cn H=(chenqj) [59.37.219.67] P=smtps X=TLS-1.0:RSA_ARCFOUR_MD5:16 DN="" S=698 id=6C0EAB0EF1544766B42FC54D72007597@chenqj
2008-02-21 14:33:23 1JS4zi-0001Ti-QX => icatman <icatman@hotend.cn> R=local_user T=mail_spool
2008-02-21 14:33:23 1JS4zi-0001Ti-QX Completed
使用SSL,使用密码发信 ok
2008-02-21 14:35:40 1JS51w-0001Tn-Dz <= icatman@hotend.cn H=(chenqj) [59.37.219.67] P=esmtpsa X=TLS-1.0:RSA_ARCFOUR_MD5:16 DN="" A=login_saslauthd_server:icatman S=700 id=542FABB00F7A4D3E90AA8945734A2F8C@chenqj
2008-02-21 14:35:40 1JS51w-0001Tn-Dz => icatman <icatman@hotend.cn> R=local_user T=mail_spool
2008-02-21 14:35:40 1JS51w-0001Tn-Dz Completed试验前已经将 exim4 的中转主机/域名清空,这时如果要用本地邮件服务代其他邮箱对外发信,必须登录后才能发信成功,用户验证真的起作用了。
[
本帖最后由 icatman 于 2008-2-23 11:13 编辑 ]