这是我的/etc/ssmtp/ssmtp.conf
省略的根、电子邮件、密码和主机名:
[email protected]
[email protected]
AuthPass=my_gmail_password
hostname=my_host_name
mailhub=smtp.gmail.com:587
rewriteDomain=gmail.com
FromLineOverride=YES
UseTLS=YES
UseSTARTTLS=YES
文件权限为rw-r-----
。
尽管我已经保存了这个配置,但 WordPress 仍然出现错误(由 Contact Form 7 插件,简称CF7)。
没有创建/var/log/mail.log
或具有类似名称的任何日志文件(并且我知道我可以创建这些文件,并且假设如果我觉得真的需要的话我会这样做)。/var/log/ssmtp.log
touch
答案1
在写这个问题的时候,我明白了问题是什么,我解决了它,然后电子邮件就成功发送了。
前言
要理解我下面的回答,必须确保了解电子邮件数据如何从 CMS(本例中为 WordPress)传输到最终的目的地电子邮件帐户。以下链描述了它:
内容管理系统及其联系表格 (带有 CF7 的 WordPress) → php
mail()
函数 →sSMTP
→邮件传输协议(网络服务)→ 电子邮件代理站(Gmail)→ 最终电子邮件目的地(Gmail);
问题及其解决方案
我的sSMTP
上述配置其实没什么问题。问题出在我通过sSMTP
(Gmail) 发送数据的电子邮件代理上:
您会看到,在您创建一个电子邮件帐户之后,该帐户将作为通过 SMTP 发送到您的最终目的地电子邮件地址的内容之间的代理(媒介),这个代理对于sSMTP
类似工具通常是无用的,除非您在该电子邮件代理本身中启用某些功能!
在我的电子邮件代理 Gmail 中,我必须启用的是“访问不太安全的应用程序”。
我收到一封 Gmail 邮件说“检查被阻止的登录尝试”。我打开邮件,发现如果我允许,Gmail 会批准这些数据的来源 IP 地址。这个邮件地址就是我的 VPS 机器的 IP。
我允许通过 Google 认为“不太安全的应用程序”发送电子邮件
sSMTP
。然后我再次尝试从 WordPress 发送电子邮件。这一次,一切顺利。
概括
问题出在 Gmail 方面 --- 我必须在那里启用“不太安全的应用程序的访问”,然后电子邮件才能发送,数据才能到达最终目的地。
笔记
- 这有点离题,但当我第一次开始学习时,
sSMTP
我问自己“如何确保 sSMTP` 可以与多个应用程序一起工作。这里我当时就得到了答案。