如何配置exim4通过受密码保护的ssl smtp邮件服务器发送邮件?


19

我希望我的cronjobs能够从家用计算机发送邮件。我的服务器像这样配置exim4:

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

但是,在家里,我的ISP阻止了直接通过防火墙发送的邮件。我有一个受密码保护的ssl smtp服务器,可以通过它路由邮件,但是在弄清楚如何配置exim4来完成这项工作方面我一直没有成功。我希望有人能给我一个配置示例,在其中可以插入主机名,用户名,密码和“ use ssl”,以使其通过单个smtp服务器发送邮件。

Answers:


25

我终于找到了切实可行的Tony Scelfo详细说明集。看来您必须在端口587上使用传输层安全性(TLS)。我尚未使SSL SMTP正常工作。

首先运行sudo dpkg-reconfigure exim4-config并使用以下配置选项:

  • 邮件配置的常规类型: smarthost发送的邮件;通过SMTP或fetchmail收到
  • 系统邮件名称: <您的主机名>
  • 用于侦听传入SMTP连接的IP地址: 127.0.0.1
  • 接受邮件的其他目的地: <您的主机名>
  • 中继邮件的机器: <将此留空>
  • 传出智能主机的IP地址或主机名: mail.example.com :: 587
  • 在外发邮件中隐藏本地邮件名称?
    • 是的-所有外发邮件似乎都来自您的Gmail帐户
    • 否-发送带有有效发件人姓名标题的邮件将保留发件人姓名
  • 保持最少的DNS查询数量(按需拨号)?没有
  • 本地邮件的发送方式: <选择您喜欢的一种>
  • 将配置文件拆分为小文件?是的(您接下来需要编辑其中一个文件)

然后运行sudo vi /etc/exim4/passwd.client并为您的邮件主机及其添加的别名添加以下行(通过找到nslookup)。用您要通过其路由邮件的帐户替换<电子邮件地址>和<密码>:

mail.example.com:<email address>:<password>
mail.yourhosting.provider:<email address>:<password>

编辑passwd.client文件后,运行sudo update-exim4.conf,将您的更改集成到Exim4配置中。

运行sudo /etc/init.d/exim4 restart并确保该服务停止并正常启动。如果该服务无法重新启动,则在编辑passwd.client文件时可能出现了问题。

如果Exim4重新启动,请继续运行sudo tail -f /var/log/exim4/mainlog以查看邮件日志。在另一个窗口中,从系统发送电子邮件,并确保其中包含一条记录R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16。这X=TLS意味着您所发送的邮件具有传输层安全性。


1
无需“将配置文件拆分为小文件”,因为/etc/exim4/passwd.client两种方法都是单独的文件。
运行CMD

请注意,指定SMTP端口可能不适用于所有邮件服务器。但是exim4,如果邮件服务器提供了默认的SMTP端口,它将仍然使用TLS。可以通过查看以下X=信息来进行检查:/var/log/exim4/mainlog
运行CMD 2015年

请给我指出正确的方向。我不想重复一些问题。如果我希望所有用户在其HOME目录中设置自己的stmp密码怎么办?exim4会寻找各种passwd.client吗?Tx
Dr Beco

对我来说,这听起来像是一个新问题
Stephen Ostermiller

@DrBeco如果您有一个特定于该问题或答案的特定问题,请以问题的形式提出
托马斯·沃德

5

如果您的ISP需要身份验证,则应将dc_smarthost设置为ISP使用的邮件服务器主机名和端口组合,并将dc_eximconfig_configtype设置为“ smarthost”,如下所示:

dc_eximconfig_configtype='smarthost'
dc_smarthost='mail.example.com::587'

然后,您可以添加凭据,/etc/exim4/passwd.client如下所示:

mail.example.com:username:password

然后,通过exim4服务器发送的所有邮件都将通过此邮件主机进行路由。


10
在update-exim4.conf中,我为smarthost行添加了两个冒号,就像这样dc_smarthost='mail.example.com::587',这一切都不同了!终于开始通过发送邮件了。
马科斯(Marcos)2012年

+1这是我在许多教程中看到的一个非常常见的错误。
TwystO

4

这对我来说很好。我的ISP使用端口25,并dc_smarthost='myisp.mail.server:25' 在更改此文件并发出命令后:

  1. update-exim4.conf
  2. /etc/init.d/exim4 restart

在我测试通过exim4经典示例发送电子邮件后,如下所示:

echo "content of mail body with pt-br chars ação avião língua é essa em 1609." | mail -s "Confirmar 16DOM" my-user-in-isp@my-domain-url

而这些流量正常收件箱的my-usermy-domain-url

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.