【发布时间】:2018-07-08 17:27:04
【问题描述】:
我在用户注册后尝试发送电子邮件,但收到错误消息:
无法与主机 smtp.gmail.com 建立连接 [连接超时 #110]
我使用的是 Ubuntu 16.04 服务器。本地主机上一切正常。
命令
openssl s_client -connect google.com:443 -tls1_2
返回OK,所以我猜是打开587端口发送邮件。
我的.env:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=***@gmail.com
MAIL_PASSWORD=*** //(not the same as I used on local machine)
MAIL_ENCRYPTION=tls
config\mail.php:
return [
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', '***@gmail.com'),
'name' => env('MAIL_FROM_NAME', '***'),
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],
];
EDIT#1:我也有连接问题。在尝试播种时
public function run()
{
$defaultUser = User::create([
'name' => 'user',
'email' => 'user@mail.com',
'password' => bcrypt('123123'),
'verified' => 1
]);
$defaultAdmin = User::create([
'name' => 'admin',
'email' => 'admin@mail.com',
'password' => bcrypt('123123'),
'verified' => 1
]);
$userRole = Role::create([
'name' => 'user',
'display_name' => 'user',
'description' => 'user',
]);
$adminRole = Role::create([
'name' => 'admin',
'display_name' => 'admin',
'description' => 'admin',
]);
$defaultUser->attachRole($userRole); //zizaco-entrus RBAC package
$defaultAdmin->attachRole($adminRole);
}
仅$defaultUser 种子(我有一个事件在用户存储后触发并向他发送验证邮件)。我收到一个错误
在 StreamBuffer.php 第 269 行:
无法与主机 smtp.gmail.com 建立连接 [Connection ti #110]
EDIT#2:telnet smtp.gmail.com 587 没有响应。
编辑#3:sudo ufw status:
Status: active
To Action From
-- ------ ----
Apache Full ALLOW Anywhere
587/tcp ALLOW Anywhere
465/tcp ALLOW Anywhere
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
21/tcp ALLOW Anywhere
587 ALLOW Anywhere
Apache Full (v6) ALLOW Anywhere (v6)
587/tcp (v6) ALLOW Anywhere (v6)
465/tcp (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
587 (v6) ALLOW Anywhere (v6)
编辑#4:
我为此项目创建的新 Gmail 应用程序密钥仍未使用。
我试过this answer:
在 AbstractSmtpTransport.php 第 419 行:
预期响应代码 220,但得到代码“”,消息“”
this answer 也没有帮助。
EDIT#5:检查服务器仪表板上的 smtp 权限。打扰各位了,抱歉。
【问题讨论】:
-
您的端口可能有误。你试过替代品吗?例如 465?
-
@catbadger 是的,我试过 465,同样的错误
-
可能是 dns。尝试 ping google.com?
-
可能是防火墙问题。
-
这是偶然的谷歌云平台服务器吗?
标签: php ubuntu-16.04 gmail-api laravel-5.5 apache2.4