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服務,以及生成受權密碼。

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

路由定義post

Route::post('/users/sms_email','UsersController@sendEmail');複製代碼

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

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);
        });
        
    }複製代碼

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

但願能夠對你們有所幫助,若有疑問,歡迎騷擾

相關文章
相關標籤/搜索