我希望我的 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'
在更改此文件并发出命令后:
update-exim4.conf
/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-user
中my-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