Php Can';不要发电子邮件给拉威尔
我试图在用户注册后发送电子邮件,但收到一个错误: 无法与主机smtp.gmail.com建立连接[连接超时#110] 我使用的是Ubuntu 16.04服务器。在本地主机上一切正常。Php Can';不要发电子邮件给拉威尔,php,ubuntu-16.04,gmail-api,laravel-5.5,apache2.4,Php,Ubuntu 16.04,Gmail Api,Laravel 5.5,Apache2.4,我试图在用户注册后发送电子邮件,但收到一个错误: 无法与主机smtp.gmail.com建立连接[连接超时#110] 我使用的是Ubuntu 16.04服务器。在本地主机上一切正常。 命令 返回OK,因此我猜587端口已打开以发送电子邮件。 我的.env: MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=***@gmail.com MAIL_PASSWORD=*** //(not the same as
命令 返回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'),
],
],
];
编辑#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建立连接[连接]
医疗服务#110]
编辑#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应用程序密钥尚未使用 我试过: 在AbstractSmtpTransport.php第419行:
预期响应代码为220,但获得代码“”,消息为“” 也没用
编辑#5:已检查服务器仪表板上的smtp权限。很抱歉打扰各位。我有使用GoDaddy服务器的经验,这些服务器限制了您的服务器每天可以发送的中继数量 谷歌云平台通过阻止常用的SMTP电子邮件端口来禁止发送电子邮件。他们确实与saas电子邮件提供商达成了协议,以提高您可以发送的免费电子邮件数量。例如,我使用邮枪,而不是每月只发送10000封免费电子邮件,我可以发送30000封电子邮件。我真的很喜欢用这种方式发送电子邮件,因为它们有更高的可交付性,让我们更容易跟踪点击、退订、浏览等。总之,我建议订阅其中一项服务
我怀疑道也在限制你。基本上,任何云服务器托管服务都对电子邮件负有责任。特别是在共享主机的情况下,1个垃圾邮件发送者可以将同一服务器和地区的多个用户标记为垃圾邮件发送者,即使他们可能是无辜的。您的端口可能是错误的。你试过替代品了吗?例如465?@Cat獾是的,我试过465,同样的错误可能是dns。尝试ping google.com?可能是防火墙问题。这是偶然的谷歌云平台服务器吗?
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)