Laravel自帶郵件發(fā)送功能的實現(xiàn)

我用163和qq已經(jīng)實現(xiàn)了

很狗血的是我頭一天搞了半天總是發(fā)送失敗,說連接不上服務(wù),第二天到公司一發(fā)送就成功了,不知道是不是應(yīng)該重新訪問以下項目或者重啟服務(wù)

我推測是因為 .env文件修改了沒有生效,我在子系統(tǒng)做的項目,所以需要結(jié)束項目重新運行命令:php artisan serve , 每次修改了 .env 文件都要

進入正題

需要注意的是:需要開啟POP3和SMTP服務(wù)。開啟方式如下:

網(wǎng)頁登錄郵箱,點擊進入設(shè)置就會看到


開啟服務(wù)

當(dāng)開啟成功會生成密鑰,這個東西會在配置中用到(注意這個授權(quán)碼只能看一次,以后要看只能修改,先拿小本本記下來)


查看授權(quán)碼


給出.env中的配置

MAIL_DRIVER=smtp

MAIL_HOST=smtp.163.com

MAIL_PORT=25

MAIL_USERNAME=xxx@163.com

MAIL_PASSWORD=授權(quán)碼

MAIL_ENCRYPTION=

MAIL_FROM_ADDRESS=xxx@163.com

MAIL_FROM_NAME=

這些是在 config 中mail.php 用到的

1. driver用于配置默認的郵件發(fā)送驅(qū)動,Laravel支持多種郵件驅(qū)動方式,包括smtp、Mailgun、Maildrill、Amazon SES、mail和sendmail,Mailgun和Amazon SES都是收費的Maildrill目前不支持中國區(qū)用戶,這三個都是第三方郵件服務(wù)。mail驅(qū)動使用PHP提供的mail函數(shù)發(fā)送,sendmail驅(qū)動通過Sendmail/Postfix(Linux)提供的命令發(fā)送郵件,smtp驅(qū)動通過支持ESMTP的SMTP發(fā)送郵件。

就目前狀況來看,使用smtp是最明智的選擇,mail不安全,sendmail需要安裝配置Sendmail/Postfix,其他要么付費要么不能用。

2.?host是郵箱所在主機,比如我們使用163郵箱,對應(yīng)值是smtp.163.com,使用QQ郵箱的話,對應(yīng)值是smtp.qq.com。

3. port用于配置郵箱發(fā)送服務(wù)端口號,比如一般默認值是25,但如果設(shè)置SMTP使用SSL加密,該值為465。

4. from配置項包含address和name,前者表示發(fā)送郵箱,后者表示發(fā)送郵件使用的用戶名。

5. encryption表示加密類型,可以設(shè)置為null表示不使用任何加密,也可以設(shè)置為tls或ssl。

6. username表示郵箱賬號,比如yaojinbu@163.com

7. password表示上述郵箱登錄對應(yīng)登錄密碼。注意QQ郵箱的話應(yīng)該開啟POP3|SMTP服務(wù)時給的密鑰。

8. sendmail是在設(shè)置driver為sendmail時使用,用于指定sendmail命令路徑。

下邊是控制器代碼:

首先引入類

use Mail;

使用方法:

$res = ['email'=>$data['email'],'name'=>$data['email'],'token'=>$token];

Mail::send('emails.test',$res,function($message)use($res) {

????$to = $res['email'];

????$message ->to($to)->subject('歡迎注冊本網(wǎng)站,請盡快激活您的賬號!');

});

在resources/view中新建末班文件 emails/test.blade.php

{{$name}}你好,這是一封測試文件。

目前就只是發(fā)送普通文本攜帶變量,其他的比如附件當(dāng)然也可以。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容