Gmail工作区/Gmail套件使用msmtp从服务器发送电子邮件

我们正在迁移到Gmail的过程中,以便能够委托管理一个邮件服务器。

我们以前在我们的服务器上使用ssmtp来发送邮件,使用我们自己的邮件服务器(Zimbra)。

我现在已经设法让Gmail工作区工作,并想分享一些关于如何做到这一点的指导。

这是在Debian / Ubuntu系统上完成的。

设置双因素认证

登录到你的谷歌账户。

https://myaccount.google.com/

点击安全选项卡,向下滚动到2步验证,启用它。

形象

你可能需要向谷歌提供你的手机号码,或者在这里选择其他选项。

设置一个应用程序的密码

点击2步验证下方的 "应用程序密码"。

谷歌将要求你再次登录。

形象

(注意我已经设置了一个应用程序的密码,你的屏幕在开始时可能看起来有点不同)

点击选择应用程序,并选择其他(自定义名称)。

形象

你可以输入任何你喜欢的名字--它是供你参考的。例如:

形象

点击进入 生成

将会出现一个弹出窗口。你的应用程序密码将只显示这一次,所以一定要复制它。

形象

注意,密码只是显示为四段,每段四个字符,以便于阅读。 将没有空格 在实际的密码中。

在这种情况下,密码是

lwsznhkychasbbrh

单击 "完成"。

切换到msmtp

ssmtp不再被维护,也可能会有连接到Gmail的问题。

/var/log/syslog:Oct 15 09:52:22 Athena sSMTP[19076]。使用ECDHE_ECDSA_CHACHA20_POLY1305的SSL连接
/var/log/syslog:Oct 15 09:52:22 Athena sSMTP[19076]。授权失败(535 5.7.8 
https://support.google.com/mail/?p=BadCredentials ************.79 - GSMtp)

ssmtp: 授权失败 (535 5.7.8)  https://support.google.com/mail/?p=BadCredentials *************.4 - gsmtp)

显然,ECDHE的认证部分 对较新系统的一些用户来说可能是个问题.

变通方法是切换到 ǞǞǞ.

移除ssmtp(所有命令以root身份运行)。

apt-get purge ssmtp

安装msmtp

apt-get 安装 msmtp msmtp-mta

设置msmtp

nano /etc/msmtprc

投入以下数据。

违约
授权开
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp.log

账户 Gmail
host smtp.gmail.com
端口587

来自[email protected]
用户 [email protected]
密码 lwsznhkychasbbrh

账户默认:Gmail

改变你的登录数据(从、用户和密码--我已经采取了 lwsznhkychasbbrh 来自上面的例子)。

请注意,你不需要重启服务或类似的东西--访问数据将被用于服务器试图发送的下一封邮件。

使用 应用程序密码 上面生成的--你的账户密码将不起作用。

msmtp: 认证失败(方法PLAIN)。
msmtp: 服务器信息。534-5.7.9 需要特定的应用密码。了解更多信息请访问
msmtp: 服务器信息。534 5.7.9 
https://support.google.com/mail/?p=InvalidSecondFactor *************.29 - GSMtp
msmtp: 无法发送邮件(账户默认来自/etc/msmtprc)。

此外,请注意,应用程序的密码应在字符之间没有空格的情况下输入(如上所述)。

保护这个文件(它包含登录数据!)。

chmod 600 /etc/msmtprc

形象

启用更不安全的应用程序

https://admin.google.com/u/2/ac/security/lsa

不幸的是,你会 还有 需要使 不太安全的应用程序 在谷歌管理中对你的账户进行访问,否则你会继续得到同样的错误信息。

msmtp: 认证失败(方法PLAIN)。
msmtp: 服务器信息。535-5.7.8 用户名和密码不接受。了解更多信息请访问
msmtp: 服务器信息。535 5.7.8  https://support.google.com/mail/?p=BadCredentials **********.34 - GSMtp
msmtp: 无法发送邮件(账户默认来自/etc/msmtprc)。

形象

将其改为 "允许用户管理他们对不太安全的应用程序的访问",并点击 拯救.

发送一个测试信息

如果一切工作正常,你现在可以发送一个测试信息。

echo 'test' | msmtp [email protected]

如果这个命令没有错误地返回,那么一切都会成功。

此外,如果你刷新你的应用程序密码视图,你会看到应用程序密码已经被使用("最后使用")。

形象

(不过根据我的测试,这可能并不总是准确的)。

如果它能 不是 工作,你会得到类似于以下的输出。

msmtp: 认证失败(方法PLAIN)。
msmtp: 服务器信息。535-5.7.8 用户名和密码不接受。了解更多信息请访问
msmtp: 服务器信息。535 5.7.8 
https://support.google.com/mail/?p=BadCredentials ***********.9 - GSMtp
msmtp: 无法发送邮件(账户默认来自/etc/msmtprc)。

注意:如果你使用上面看到的垃圾桶图标删除你的应用程序密码,也会出现这个错误。顺便说一下,这是应用密码的一个有用的功能:如果你怀疑有漏洞,你可以简单地删除应用密码,用另一个应用密码设置你的设备。

如果你继续收到这个错误,请检查你是否启用了不太安全的应用程序,正如我指示你做的那样(上文)。

注意二:你将在你的电子邮件账户中收到关于新创建的应用程序密码的信息。

形象

注意三:你也会在你的发送文件夹中获得已发送的信息。

形象

参考资料

奖金

谷歌提到他们的 本页中的费率限制:

  • SMTP中继服务每天有10.000个收件人(需要一个静态IP地址或有效的G套件用户登录)。
  • Gmail的SMTP每天有2.000条信息