[英]Can't send email Laravel
我嘗試在用戶注冊后發送電子郵件,但出現錯誤:
無法與主機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建立連接[連接編號為110的連接]
編輯#2: telnet smtp.gmail.com 587
不響應。
EDIT#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,但得到的代碼為“”,並帶有消息“”
同樣, 這個答案也無濟於事。
EDIT#5:在服務器儀表板上檢查了smtp權限。 不好意思,伙計們。
我在GoDaddy服務器方面有經驗,它限制了服務器每天可以發送的中繼數量。
Google Cloud Platform通過阻止常用的SMTP電子郵件端口來完全禁止發送電子郵件。 他們確實與saas電子郵件提供商達成協議,以增加您可以發送的免費電子郵件的數量。 例如,我使用mailgun,而不是每月免費發送10,000封電子郵件,而是發送30,000封電子郵件。 我真的很喜歡以這種方式發送電子郵件,因為它們具有更高的可傳遞性,並允許我們更輕松地跟蹤點擊,退訂,查看等。 最重要的是,我建議訂閱其中一項服務。
我懷疑Scaleway也會限制您。 基本上,任何雲服務器托管服務都有電子郵件責任。 尤其是在共享主機的情況下,垃圾郵件發送者可以將同一服務器和區域中的多個用戶標記為垃圾郵件發送者,即使他們可能是無辜的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.