如何修复使用 gmail 发送电子邮件时出现的错误?

How to fix error with sending email using gmail?

我想在我的 php/laravel 应用程序中发送电子邮件 ubuntu 18 under Digital Ocean 我发现了这个 https://semantiko.com/how-to-fix-php-mail-function-on-ubuntu-server/ 文章 我填写了相关的配置文件并发送了几封电子邮件,我在控制台中找到:

grep -riI ssmtp /var/log
...
/var/log/mail.log:Oct 24 14:05:22 nsn-do-lamp sSMTP[16500]: SSL connection using ECDHE_RSA_CHACHA20_POLY1305
/var/log/mail.log:Oct 24 14:05:22 nsn-do-lamp sSMTP[16500]: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 b5-v6sm5187045wrr.94 - gsmtp)
/var/log/mail.log:Oct 24 14:05:23 nsn-do-lamp sSMTP[16502]: Creating SSL connection to host
/var/log/mail.log:Oct 24 14:05:23 nsn-do-lamp sSMTP[16502]: SSL connection using ECDHE_RSA_CHACHA20_POLY1305
/var/log/mail.log:Oct 24 14:05:23 nsn-do-lamp sSMTP[16502]: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 t198-v6sm6776812wmd.9 - gsmtp)
/var/log/dpkg.log:2018-10-24 05:27:56 install ssmtp:amd64 <none> 2.64-8ubuntu2
/var/log/dpkg.log:2018-10-24 05:27:56 status half-installed ssmtp:amd64 2.64-8ubuntu2
/var/log/dpkg.log:2018-10-24 05:27:56 status unpacked ssmtp:amd64 2.64-8ubuntu2
/var/log/dpkg.log:2018-10-24 05:27:56 status unpacked ssmtp:amd64 2.64-8ubuntu2
/var/log/dpkg.log:2018-10-24 05:27:56 configure ssmtp:amd64 2.64-8ubuntu2 <none>
/var/log/dpkg.log:2018-10-24 05:27:56 status unpacked ssmtp:amd64 2.64-8ubuntu2
/var/log/dpkg.log:2018-10-24 05:27:56 status unpacked ssmtp:amd64 2.64-8ubuntu2
/var/log/dpkg.log:2018-10-24 05:27:56 status unpacked ssmtp:amd64 2.64-8ubuntu2
/var/log/dpkg.log:2018-10-24 05:27:56 status half-configured ssmtp:amd64 2.64-8ubuntu2
/var/log/dpkg.log:2018-10-24 05:27:56 status installed ssmtp:amd64 2.64-8ubuntu2
/var/log/syslog.1:Oct 24 05:34:07 nsn-do-lamp sSMTP[10100]: Creating SSL connection to host
/var/log/syslog.1:Oct 24 05:34:07 nsn-do-lamp sSMTP[10100]: SSL connection using ECDHE_RSA_CHACHA20_POLY1305
/var/log/syslog.1:Oct 24 05:34:07 nsn-do-lamp sSMTP[10100]: Authorization failed (534 5.7.9  https://support.google.com/mail/?p=WebLoginRequired 130-v6sm4756430wmn.7 - gsmtp)

在我的 https://mail.google.com 帐户下,我找到了电子邮件:

Sign-in attempt was blocked
myaccount@gmail.com
Someone just used your password to try to sign in to your account from a non-Google app. Google blocked them, but you should check what happened. Review your account activity to make sure no one else has access.
CHECK ACTIVITY

单击 "CHECK ACTIVITY" 按钮打开下一页 https://imgur.com/a/fUKlJgO 我想允许使用我的帐户或我,所以我单击 "NO, SECURE ACCOUNT" 并打开下一页 https://imgur.com/a/LfIDTB4

这对我来说很奇怪,因为我不需要更改密码。我想允许邮件服务使用我的 gmail.com 帐户。

你能说说哪里不对吗?
我是不是误解了 gmail 邮件?

修改块 # 2 我尝试按照提供的 link 打开下一个说明:

Use this setting when you want to ensure that access by a less secure app is unavailable to all. Sign in to your Google Admin console. Sign in using an administrator account, not your current account MyNick@gmail.com

... Who is my administrator? Quick definition: A person who manages Google services or devices for a company, school, or group. Someone in your company, school, or group Your current account, MyNick@gmail.com, isn’t managed by an administrator. The account isn’t associated with any company, school, or group. Instead, it’s a free Google Account that you can manage yourself.

但是阅读我错过的文档,因为我有空 Google 帐户有没有办法让我自己成为管理员? 如果是,请指出地点和方式?

修改块#3: 在我的 conf 文件中使用了 587 端口: 须藤纳米 /etc/ssmtp/ssmtp.conf :

root=MYNICK@gmail.com
mailhub=smtp.gmail.com:587
hostname=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=MYNICK@gmail.com
AuthPass=MYPASSWORD
FromLineOverride=YES
UseTLS=YES

须藤纳米 /etc/ssmtp/revaliases :

root:MYNICK@gmail.com:smtp.gmail.com:587

修改这些文件后我运行命令 服务 apache2 重新启动

并正在测试发送电子邮件 我没有在我的电子邮件中收到电子邮件 我在下一个日志中看到很多“授权失败”错误

grep -riI ssmtp /var/log
var/log/syslog.1:Oct 30 00:34:04 nsn-do-lamp sSMTP[24892]: Creating SSL connection to host
/var/log/syslog.1:Oct 30 00:34:04 nsn-do-lamp sSMTP[24892]: SSL connection using ECDHE_RSA_CHACHA20_POLY1305
/var/log/syslog.1:Oct 30 00:34:05 nsn-do-lamp sSMTP[24892]: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 y76-v6sm12958494wmd.37 - gsmtp)
/var/log/syslog.1:Oct 30 01:34:04 nsn-do-lamp sSMTP[25660]: Creating SSL connection to host
/var/log/syslog.1:Oct 30 01:34:04 nsn-do-lamp sSMTP[25660]: SSL connection using ECDHE_RSA_CHACHA20_POLY1305
/var/log/syslog.1:Oct 30 01:34:04 nsn-do-lamp sSMTP[25660]: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 60-v6sm16580038wra.35 - gsmtp)
/var/log/syslog.1:Oct 30 02:34:05 nsn-do-lamp sSMTP[26444]: Creating SSL connection to host
/var/log/syslog.1:Oct 30 02:34:05 nsn-do-lamp sSMTP[26444]: SSL connection using ECDHE_RSA_CHACHA20_POLY1305
/var/log/syslog.1:Oct 30 02:34:05 nsn-do-lamp sSMTP[26444]: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 t16-v6sm274794wrr.12 - gsmtp)
/var/log/syslog.1:Oct 30 03:34:06 nsn-do-lamp sSMTP[27101]: Creating SSL connection to host
/var/log/syslog.1:Oct 30 03:34:07 nsn-do-lamp sSMTP[27101]: SSL connection using ECDHE_RSA_CHACHA20_POLY1305
/var/log/syslog.1:Oct 30 03:34:07 nsn-do-lamp sSMTP[27101]: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 m16-v6sm13164091wmd.35 - gsmtp)
/var/log/syslog.1:Oct 30 04:34:04 nsn-do-lamp sSMTP[27852]: Creating SSL connection to host
/var/log/syslog.1:Oct 30 04:34:04 nsn-do-lamp sSMTP[27852]: SSL connection using ECDHE_RSA_CHACHA20_POLY1305
/var/log/syslog.1:Oct 30 04:34:05 nsn-do-lamp sSMTP[27852]: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 143-v6sm17450782wmv.6 - gsmtp)
/var/log/syslog.1:Oct 30 05:34:04 nsn-do-lamp sSMTP[28734]: Creating SSL connection to host
/var/log/syslog.1:Oct 30 05:34:04 nsn-do-lamp sSMTP[28734]: SSL connection using ECDHE_RSA_CHACHA20_POLY1305
/var/log/syslog.1:Oct 30 05:34:04 nsn-do-lamp sSMTP[28734]: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 b5-v6sm1822874wrf.15 - gsmtp)

1) 可以是一些更多的服务我需要重新启动 apache2

2) 在我看来,这些日志消息并不是最后的,因为 运行ning :

 # date
Tue Oct 30 12:02:40 UTC 2018

我看到了时差,好像没有最后的消息行 有没有办法清除 ssmtp 日志?

3) 在 Digital Ocean 下重启 ubuntu18 没有液滴损坏的安全方法是什么?在某些情况下,我不确定是否要重新启动一些 service 我更喜欢重启系统...

修改块#4: 感谢您的反馈意见! 我试着按照你的指示去做: 1) 我激活了双因素身份验证:https://imgur.com/a/azIZCY0。但是,如果我对这些应用程序做了什么?

2) 我得到了格式为 XXXX XXXX XXXX XXXX

的密码 https://imgur.com/a/ZddUZ31

3) 创建密码后我得到了下一页 https://imgur.com/a/1qkQLDN:

4) 你提到了

“use the app password in your .env file”

这个密码的变量名必须是哪个?喜欢

AuthPass=MYPASSWORD # password without spaces in it?

in /etc/ssmtp/ssmtp.conf 或其他名称?我只需要生成这个新密码?

谢谢!

允许安全性较低的应用程序访问帐户

  1. 登录到您的 Google 管理控制台。
  2. 单击“安全”>“基本设置”。
  3. 在安全性较低的应用下,select 转到安全性较低的应用的设置。
  4. 在子窗口中,select 允许用户管理他们对安全性较低的应用程序的访问单选按钮。

一旦您设置允许用户管理他们对 selected 组中受影响的用户或 组织单位将能够切换安全性较低的访问权限 应用程序自行打开或关闭。

参考Allow or disallow less secure apps to access accounts

我们在使用 Google Apps for work 帐户中的一些 "fresh" gmail 地址时遇到了类似的问题。似乎 Google 有某种启发式 运行 用于阻止来自未知应用的应用访问的新地址。

我们的解决方案是启用双因素身份验证并随后生成应用密码。步骤:

对于您的编辑块 #2,您无法使用常规 Google 帐户让自己成为管理员。要成为您自己的管理员,您必须为 G Suite 付费。 https://gsuite.google.com/

G Suite 不适用于个人。它适用于想要为其公司使用 Google 应用程序的企业。这将为他们提供 admin.google.com 中的管理面板,他们可以在其中更改各种设置以添加和编辑帐户、使用自己的企业邮件、更改应用程序的徽标等等。 (甚至 Android、IOS 和 Chromebook 的设备管理。) 我是公司的 IT 人员,我们使用 G Suite。这些价格对于测试来说太高了。所以,自己做管理员是不可能的,因为对自己来说太贵了。

编辑给你一个价目表: https://gsuite.google.com/pricing.html

此致, 克里斯

启用安全性较低的应用程序的更新说明

  1. 在 Gmail 中点击齿轮图标(右上角)
  2. 点击查看所有设置
  3. 帐户和导入选项卡
  4. 单击其他 Google 帐户设置
  5. 左侧或顶部菜单,安全
  6. 向下滚动到不太安全的应用程序访问,将其打开