laravel郵件發送

測試使用郵箱16三、QQ郵箱php

QQ郵箱須要注意:須要開啓POP3/SMTP服務。html

開啓成功後生成祕鑰,祕鑰在配置中用到至關於密碼,生成祕鑰方法laravel

若是須要記錄發郵箱記錄時,你須要進行此配置api

IMAP和POP有什麼區別?
POP容許電子郵件客戶端下載服務器上的郵件,可是您在電子郵件客戶端的操做(如:移動郵件、標記已讀等),這是不會反饋到服務器上的,好比:您經過電子郵件客戶端收取了QQ郵箱中的3封郵件並移動到了其餘文件夾,這些移動動做是不會反饋到服務器上的,也就是說,QQ郵箱服務器上的這些郵件是沒有同時被移動的 。可是IMAP就不一樣了,電子郵件客戶端的操做都會反饋到服務器上,您對郵件進行的操做(如:移動郵件、標記已讀等),服務器上的郵件也會作相應的動做。也就是說,IMAP是「雙向」的。
同時,IMAP能夠只下載郵件的主題,只有當您真正須要的時候,纔會下載郵件的全部內容。

Laravel進行配置

config/mail.php數組

.env安全

mail.php與.env中服務器

'from' => [閉包

  'address' => env('MAIL_FROM_ADDRESS', '與.env中MAIL_USERNAME保持一致'),函數


],測試

MAIL_USERNAME=address

  • driver用於配置默認的郵件發送驅動,Laravel支持多種郵件驅動方式,包括smtp、Mailgun、Maildrill、Amazon SES、mail和sendmail,Mailgun和Amazon SES都是收費的Maildrill目前不支持中國區用戶,這三個都是第三方郵件服務。mail驅動使用PHP提供的mail函數發送,sendmail驅動經過Sendmail/Postfix(Linux)提供的命令發送郵件,smtp驅動經過支持ESMTP的SMTP發送郵件。
    就目前情況來看,使用smtp是最明智的選擇,mail不安全,sendmail須要安裝配置Sendmail/Postfix,其餘要麼付費要麼不能用。
  • host是郵箱所在主機,好比咱們使用163郵箱,對應值是smtp.163.com,使用QQ郵箱的話,對應值是smtp.qq.com
  • port用於配置郵箱發送服務端口號,好比通常默認值是25,但若是設置SMTP使用SSL加密,該值爲465。
  • from配置項包含address和name,前者表示發送郵箱,後者表示發送郵件使用的用戶名。
  • encryption表示加密類型,能夠設置爲null表示不使用任何加密,也能夠設置爲tls或ssl。
  • username表示郵箱帳號,好比*****@163.com
  • password表示上述郵箱登陸對應登陸密碼。注意QQ郵箱的話應該開啓POP3|SMTP服務時給的密鑰。
  • sendmail是在設置driver爲sendmail時使用,用於指定sendmail命令路徑。
編寫代碼進行郵箱測試
生成控制器:
  php artisan make:controller TextController 
 
路由:
   Route::get('text/send','TextController@send');
 
測試代碼以下:
<?php
namespace App\Http\Controllers;

use Elasticsearch\ClientBuilder;
use App\Jobs\Queue;
use Illuminate\Support\Facades\Redis;
use Illuminate\Support\Facades\Mail;

class TextController extends Controller
{
    public function send(){
        $name = '***';
        // Mail::send()的返回值爲空,因此能夠其餘方法進行判斷
        Mail::send('text',['name'=>$name],function($message){
            $to = '****@qq.com';
            $message ->to($to)->subject('測試郵箱');
        });
        // 返回的一個錯誤數組,利用此能夠判斷是否發送成功
        dd(Mail::failures());
    }
}
Mail::send();須要傳三個參數,第一個爲引用的模板,第二個爲給模板傳遞的變量,第三個爲一個閉包,參數綁定Mail類的一個實例。

Mailer::send文檔
Mailer:: failures文檔

在resresources/views/下建立一個text.blade.php

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

最後url地址欄訪問測試便可

 

相關文章
相關標籤/搜索