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

我希望我的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使这项工作。 我希望有人可以给我一个配置示例,我可以插入主机名,用户名,密码和“使用ssl”来让它通过单个smtp服务器发送邮件。

我终于找到了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:: mail.yourhosting.provider:: 

编辑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:16X=TLS意味着邮件正在与传输层安全性一起发送,这是您想要的。

如果您的ISP需要身份validation,则应将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服务器发送的任何邮件都将通过此邮件主机进行路由。

这对我很有用。 更改此文件并发出命令后,我的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-domain-url中输入my-user收件箱。