legend3---lavarel中使用qq邮箱发送邮件
生活随笔
收集整理的這篇文章主要介紹了
legend3---lavarel中使用qq邮箱发送邮件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
legend3---lavarel中使用qq郵箱發送郵件
一、總結
一句話總結:
第一步:配置郵箱做服務器,比如qq郵箱,網易163郵箱
第二步:配置lavarel的配置文件
第三部:寫郵件發送代碼就去看lavarel的手冊,很詳細
?
1、在qq郵箱中配置IMAP/SMTP服務的時候的授權碼的作用是什么?
方便第三方登錄:在lavarel中使用郵箱用戶名加授權碼登錄以便發送郵件
?
2、lavarel中的mail源文件的位置在哪?
vendor的lavavel里面:legend3\vendor\laravel\framework\src\Illuminate\Mail\Mailer.php
?
3、lavarel中發送郵件的方法主要是什么方法?
send方法:\Mail::send('mail.reg',[],function ($message){
//發送郵件public function send_email(){\Mail::send('mail.reg',[],function ($message){$message->to('404006308@qq.com');$message->subject('親愛的用戶,恭喜您注冊成功');});}?
?
?
?
二、lavarel中使用qq郵箱發送郵件
第一步:配置郵箱做服務器,比如qq郵箱
在郵箱設置開啟POP3/SMTP服務和IMAP/SMTP服務
?
?
?
會讓你發送短信驗證,然后給你授權碼(在lavarel中配置需要)
(這張是用的別人的圖片)
?
?
?
?
?
?
第二步:配置lavarel的配置文件
配置.env
?
配置config中的mail
?
?
?
第三部:寫郵件發送代碼就去看lavarel的手冊,很詳細
?
?
最簡單的發送代碼
//發送郵件public function send_email(){\Mail::raw('郵件測試',function ($message){$message->to('404006308@qq.com');});}?
成功實例
?
帶上主題
//發送郵件public function send_email(){\Mail::raw('郵件測試',function ($message){$message->to('404006308@qq.com');$message->subject('親愛的用戶,恭喜您注冊成功');});}?
5、發送視圖代碼及實例
send方法
//發送郵件public function send_email(){\Mail::send('mail.reg',[],function ($message){$message->to('404006308@qq.com');$message->subject('親愛的用戶,恭喜您注冊成功');});}視圖位置
?
?
視圖代碼
{{--用戶注冊發送郵件的模板視圖--}} <!doctype html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title> </head> <body><h1>1</h1><h1>1</h1><h1>1</h1><h1>1</h1><h1>1</h1><h1>1</h1><h1>1</h1><h1>1</h1><h1>1</h1><h1>1</h1><h1>1</h1><h1>1</h1><h1>1</h1> </body> </html>?
收到的郵件結果
?
?
?
?
?
?
?
?
二、Laravel自帶SMTP郵件組件實現發送郵件(QQ、163、企業郵箱都可)
轉自或參考:Laravel自帶SMTP郵件組件實現發送郵件(QQ、163、企業郵箱都可)
https://blog.csdn.net/woqianduo/article/details/81024244
生成控制器
php artisan make::controller MailController配置路由
Route::any('mail/send','MailController@send');在app/Http/Controllers生成了一個MailController控制器,如下所示:
<?php namespace App\Http\Controllers; use App\Http\Requests; class MailController extends Controller { //}編輯上面控制器,加入以下的邏輯處理:
use Mail; class MailController{ public function send() {$name = '我發的第一份郵件'; // Mail::send()的返回值為空,所以可以其他方法進行判斷 Mail::send('emails.test',['name'=>$name],function($message){ $to = '123456789@qq.com'; $message ->to($to)->subject('郵件測試'); }); // 返回的一個錯誤數組,利用此可以判斷是否發送成功dd(Mail::failures());} }Mail::send();需要傳三個參數,第一個為引用的模板,第二個為給模板傳遞的變量(郵箱發送的文本內容),第三個為一個閉包,參數綁定Mail類的一個實例。
在resources/emails下創建一個模板文件。
{{$name}} hello world。好,現在在服務器上進行測試了,在地址欄輸入http://localhost/mail/send(自己的訪問地址),發送成功。
1. 發送純文本郵件
Mail::raw('你好,我是PHP程序!', function ($message) {$to = '123456789@qq.com';$message ->to($to)->subject('純文本信息郵件測試'); });2.郵件中發送附件
發生圖片:
{{$name}},這是一封測試郵件 <br> <img src="{{$message->embedData($image,'test.jpg')}}"> public function send(){ $image = Storage::get('images/obama.jpg'); //本地文件//$image = 'http://www.baidu.com/sousuo/pic/sdaadar24545ssqq22.jpg';//網上圖片Mail::send('emails.test',['image'=>$image],function($message){ $to = '123456789@qq.com';$message->to($to)->subject('圖片測試'); }); if(count(Mail::failures()) < 1){echo '發送郵件成功,請查收!'; }else{echo '發送郵件失敗,請重試!';} }3. 郵件附件
public function sendFile(){ $name = '我發的第一份郵件'; Mail::send('emails.test',['name'=>$name],function($message){ $to = '123456789@qq.com';$message->to($to)->subject('郵件測試'); $attachment = storage_path('xls/files/test.xls');// 在郵件中上傳附件 $message->attach($attachment,['as'=>'中文文檔.xls']); }); }$message的attach方法上傳附件,該方法第一個參數是附件地址,第二個參數為一些額外參數,這里我們通過as指定附件在郵件中的顯示名稱。
測試如果顯示文件名亂碼的話,就這樣寫
$message->attach($attachment,['as'=>"=?UTF-8?B?".base64_encode('中文文檔')."?=.xls"]);?
-
?
?
?
轉載于:https://www.cnblogs.com/Renyi-Fan/p/11478389.html
總結
以上是生活随笔為你收集整理的legend3---lavarel中使用qq邮箱发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: legend3---3、lavarel页
- 下一篇: 后盾网lavarel视频项目---php