Laravel5利用163郵箱實現發送郵件mail功能

如果在後臺用戶管理加一個發送郵件的功能,相對來說聯繫用戶就很方便了,所以自己打算研究一下mail郵件的發送。在網上找了很多例子,發現都無法實現,我將使用163郵箱做郵件發送,需登錄163郵箱開啓POP3和SMTP服務,以及生成授權密碼,在.env進行配置

MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=465
MAIL_USERNAME=你的163郵箱地址
MAIL_PASSWORD=你的163郵箱地址對應的授權密碼(不是登錄密碼)
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=你的163郵箱地址
MAIL_FROM_NAME=發送郵件使用的用戶名
  • driver用於配置默認的郵件發送驅動,我們用SMTP(Simple Message Transfer Protocol)簡單郵件傳輸協議
  • host是郵箱所在主機,比如我們使用163郵箱,對應值是smtp.163.com,使用QQ郵箱的話,對應值是smtp.qq.com
  • port用於配置郵箱發送服務端口號,比如一般默認值是25,但如果設置SMTP使用SSL加密,該值爲465
  • username表示郵箱賬號
  • password表示上述郵箱對應的授權密碼
  • encryption表示加密類型,可以設置爲null表示不使用任何加密,也可以設置爲tls或ssl。
  • from配置項包含address和name,前者表示發送郵箱,後者表示發送郵件使用的用戶名。

使用163郵箱做的發送,需登錄163郵箱開啓POP3和SMTP服務,以及生成授權密碼。

 點擊下面的客戶端授權密碼進行設置,這裏我已經設置好了

路由定義

Route::post('/users/sms_email','[email protected]');

控制器代碼(發送純文本郵件)

MAIL_FROM_ADDRESS、MAIL_FROM_NAME需要在env進行設置否則發送郵件失敗

public function sendEmail(Request $request)
    {
        // 獲取郵箱標題
        $title = $request->input('title');
        // 獲取郵箱內容
        $content = $request->input('content');

        $toMail = '對方郵箱地址';

        Mail::raw($content, function ($message) use ($toMail, $title) {
            $message->subject($title);
            $message->to($toMail);
        });
        
    }

下面我將展示測試截圖,以保證代碼的有效性 

希望可以對大家有所幫助,如有疑問,歡迎騷擾