Laravel框架傳送Email遇到的問題

ccabce530發表於2018-01-25

學習使用傳送郵件

我們在使用者註冊的時候都會傳送一份歡迎的郵件,像thinkPHP我們就需要自己整合郵件傳送,而在laravel中已經整合好了傳送的郵件,只要我們進行配置就可以了,下面就展示我在學習使用傳送郵件過程中遇到的幾個問題。

第一個問題:無法連線到163郵箱

我在配置的過程中出現了下面的錯誤提示,顯示如圖:

無法連線到163郵箱

經過仔細的檢查,發現是自己的埠號和連線的使用者名稱(我配置成沒有帶@163.com這個字尾的格式)沒有配置正確。

第二個問題:沒有開啟授權碼

在配置的過程中經常會出現下面的錯誤資訊,顯示如圖:

沒有開啟授權碼

首先是要登入163郵箱開啟授權碼功能,開啟功能截圖:

授權碼開啟截圖

開啟完畢之後,需要在env檔案中配置,配置密碼為:授權碼,並非是登入密碼,重要的事情說三遍:授權碼,並非是登入密碼授權碼,並非是登入密碼授權碼,並非是登入密碼

第三個問題

在前面的配置項中我們配置了錯誤資訊,但是我們配置了正確的郵件配置資訊之後,還是現實原來的錯誤資訊,不論我們是怎麼修改,顯示如圖:

頁面提示的錯誤資訊

程式碼中已經修改好的配置資訊

遇到這個問題,首先第一個印象就是:可能是快取檔案引起的,可是我使用了php artisan config:clear命令之後,還是顯示同樣的錯誤提示資訊,這時候就開始使用Google搜尋,可是也沒有具體的解決辦法,最後想起來,忘記重啟伺服器了:重新啟動伺服器,重啟之後,結果就顯示正常了。下面配置一張Stack Overflow上提示要重啟的伺服器的圖:

重啟伺服器的提示資訊

總結

學習使用laravel傳送郵件需要注意的點:

  1. 配置的傳送郵件需要開啟授權碼功能
  2. 配置env檔案中的MAIL_USERNAME必須要有@163.com這樣的字尾
  3. 配置資料夾下的mail.php檔案中,from的鍵值需要配置address和name的值,推薦將配置項寫到env檔案中
  4. 配置傳送郵件的過程中,如果有任何的改動必須要重啟伺服器,否則無法生效

相關文章