Laravel 密碼重置電子郵件未在 Heroku 上使用 gmail 發送

東博

我目前在處理由make:auth in Laravel 5.6. 我的應用程序託管在 Heroku 上。在我的本地環境中,一切正常。我在 Heroku 的配置變量中設置了正確的值,在我的本地.env文件中也是如此:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=bla
MAIL_ENCRYPTION=tls

我在這裡讀到我必須對裡面的值進行硬編碼app/mail.php而不是引用.env文件,因為 Heroku 不會識別/理解這個引用

'password' => env('MAIL_PASSWORD')

但隨後我的數據將在 GitHub 存儲庫中可見。

問題可能是什麼?

編輯:

接受的答案是正確的答案。應該使用附加組件在 Heroku 中發送郵件。在設置 sendgrid 後,我仍然找到了一種使其與 gmail 一起工作的方法;)

-I had to use `Port 465 with ssl` as encryption. 

-Allow `less secure apps` access to my account.

-Visit `http://www.google.com/accounts/DisplayUnlockCaptcha` and sign in with your Gmail username and password.

經過這些步驟,它起作用了。也許這對其他人有幫助。

編輯2:

我將 Laravel 從 5.x 版遷移到 8 版,但再次遇到問題,因此我不得不再次使用 gmail 更改我的方法。

我不得不:

-Allow `less secure apps` access to my account.
-Enable two step verification and create an App Password like in the accepted answer of this question: https://stackoverflow.com/questions/42558903/expected-response-code-250-but-got-code-535-with-message-535-5-7-8-username
-Change Port back to 587 and tls again
-Visit `http://www.google.com/accounts/DisplayUnlockCaptcha` and sign in with your Gmail username and password.

克里斯

不要在生產環境中使用 Gmail¹。

Gmail 並非旨在充當您的應用程序的 SMTP 網關。相反,使用Heroku 推薦的眾多郵件插件之一。Mailgun 和 SendGrid 都是非常受歡迎的選項,但還有很多其他選項。

這些工具旨在為應用程序發送郵件。他們拒絕您的郵件的可能性會大大降低,並且如果配置正確,您的郵件被垃圾郵件過濾器捕獲的可能性也會大大降低。他們中的大多數都有設置操作的演練,我鼓勵您遵循它們。確保不要跳過SPFDKIM反垃圾郵件功能。

我在這裡讀到我必須對裡面的值進行硬編碼app/mail.php而不是引用.env文件,因為 Heroku 不會識別/理解這個引用

'password' => env('MAIL_PASSWORD')

這是不正確的。

你說你已經在 Heroku 上設置了配置變量,並填充了環境。.env文件只是一個方便的本地解決方法,可以做同樣的事情。無論您選擇哪個郵件插件,都會自動為您設置一個或多個環境變量,您應該在代碼中使用這些變量。


¹您可能也不應該在開發中使用它,但這不是問題。我強烈建議您改用 Mailtrap(雲)或 Mailcatcher(本地)之類的東西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Laravel 向多個收件人發送電子郵件

PHP 郵件功能通過電子郵件發送垃圾郵件(gmail 除外)

如何通過自定義列更改laravel sanctum(電子郵件和密碼)默認使用的列?

發送隊列電子郵件時出現 Laravel 錯誤

在 Laravel 8 中發送沒有環境變量的電子郵件

使用 Laravel 和 PHP 8.1 發送郵件時出錯

從發送的電子郵件網絡核心身份調用時,重置密碼不起作用

嘗試使用 Google.Apis.Gmail 從 asp.net core web api 應用程序從 google 工作區發送電子郵件時出錯

如何使用 Amazon SES 使用 reactjs 發送電子郵件

從 ASP.NET 使用 Outlook 2016 發送電子郵件

我正在使用模板發送帶有谷歌表格的電子郵件

使用 Handlebars.js 發送帶有字母和正文的電子郵件

實現忘記密碼功能,搜索,如果電子郵件存在,發送電子郵件 Node.JS 不按預期工作

如何使用現有的 Sendgrid 動態模板與 Jenkins 發送電子郵件

使用 365 實例發送郵件

Perl:使用 Office 365 發送郵件

腳本在運行代碼時不發送電子郵件

當我單擊忘記密碼發送電子郵件時遇到未捕獲的異常

在 React Native 中發送電子郵件

Studio Flow -> 發送消息 -> 功能(電子郵件)

Google 應用程序腳本 - 通過單擊鏈接或使用彈出窗口每行發送一封電子郵件?

有沒有一種方法可以使用 nodemailer 向不同的人發送不同的電子郵件?

創建用戶後使用 next.js API 發送電子郵件 ERR_HTTP_HEADERS_SENT

Laravel 5.6密码重置邮件未在Heroku上发送

在php中使用郵件功能僅發送文本內容

无法在Heroku上使用Gmail发送电子邮件

WordPress插件在網站關閉時向特定電子郵件地址發送電子郵件?

RDCOM 客戶端錯誤:無法發送電子郵件

在 Python 中發送帶有多個附件的電子郵件