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

如何配置 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 服务器发送邮件。

答案1

我终于找到了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意味着邮件正在使用传输层安全性发送,这正是您想要的。

答案2

如果您的 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 服务器发送的任何邮件都将通过此邮件主机路由。

答案3

这对我来说非常有效。我的 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

答案4

服务器名称/etc/exim4/passwd.client必须是规范名称名称解析

例如:

dc_smarthost='securesmtp.t-online.de::587'

它的值sfwdallmx.t-online.de来自:

$ nslookup securesmtp.t-online.de
...
Non-authoritative answer:
Name:   securesmtp.t-online.de
Address: 194.25.134.110
Name:   securesmtp.t-online.de
Address: 194.25.134.46
securesmtp.t-online.de  canonical name = sfwdallmx.t-online.de.

该文件passwd.client如下所示:

sfwdallmx.t-online.de:user:pwd

相关内容