1. 程式人生 > >Lumen/Laravel 5.4 使用網易郵箱 SMTP 傳送郵件

Lumen/Laravel 5.4 使用網易郵箱 SMTP 傳送郵件

Lumen / Laravel 5.4 使用網易郵箱 SMTP 傳送郵件

獲取網易郵箱的伺服器和授權碼:

    1. 獲取伺服器地址:
      點選【設定】 > 【POP3/SMTP/IMAP】:

伺服器地址:

    POP3伺服器: pop.163.com
    SMTP伺服器: smtp.163.com
    IMAP伺服器: imap.163.com
    1. 獲取客戶端授權密碼

授權碼
授權碼是用於登入第三方郵件客戶端的專用密碼。
適用於登入以下服務: POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務。

點選【設定】 > 【客戶端授權密碼】
點選【開啟】, 設定一個授權碼, 比如本例中將授權碼設定為: mailPASSWORD

配置 env 檔案:

在配置檔案 .env檔案,新增以下配置:

MAIL_DRIVER=smtp  
MAIL_HOST=smtp.163.com
MAIL_PORT=25
MAIL_USERNAME=[email protected]163.com
MAIL_PASSWORD=mailPASSWORD
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=[email protected]163.com
MAIL_FROM_NAME=cnwytnet

Lumen 專案

由於 Lumen 是簡化版的 Laravel, 需要增加以下發郵件的模組。

  • 需要新增 illuminate/mail 模組:

修改composer.json 檔案中 require 部分配置如下:

    "require": {
        "php": ">=5.6.9",
        "laravel/lumen-framework": "5.4.*",
        "vlucas/phpdotenv": "~2.2",
        "guzzlehttp/guzzle": "^6.2",
        "predis/predis": "^1.1",
        "illuminate/redis": "^5.4",
        "illuminate/mail"
:"5.4.*" }

執行 composer up.

  • 需要增加mail.php配置檔案:

確保Luemn專案中存在 app/config/mail.php 配置檔案。
若不存在可以從 Laravel 程式碼中複製一份。

建立發郵件指令碼

  • 建立指令碼檔案 app/Console/Command/SendMailCommand.php
<?php
namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;

class SendMailCommand extends Command
{
    /**
    * The name and signature of the console command.
    *
    * @var string
    */
    protected $signature = 'demo:SendMail';

    /**
    * The console command description.
    *
    * @var string
    */
    protected $description = '命令列-測試指令碼-SendMail';

    /**
     * constructor
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $content = '這是一封來自Laravel的測試郵件.';
        $toMail  = '[email protected]';

        Mail::raw($content, function ($message) use ($toMail) {
            $message->subject('[ 測試 ] 測試郵件SendMail - ' .date('Y-m-d H:i:s'));
            $message->to($toMail);
        });
    }
}
  • 將指令碼檔案加入到 app/Console/Kernel.php 中:
    protected $commands = [
        Commands\SendMailCommand::class, //測試發郵件指令碼
    ];

執行發郵件操作

  • 檢視指令碼, 可以看到我們新加的指令碼命令 demo:SendMail:
$ php artisan 
demo
  demo:SendMail    命令列-測試指令碼-SendMail
  • 執行傳送郵件指令碼:
$ php artisan demo:SendMail

不出意外的話,郵件傳送成功。檢視發件人的發件箱,或者檢視收件人的收件箱,確認一下吧。

其他

  • 郵件地址 MAIL_FROM_ADDRESS 必須和 MAIL_USERNAME一致,否則報錯:
    [Swift_TransportException]                                                                             
    Expected response code 250 but got code "553", with message "553 Mail from must equal authorized user" 
  • 不填授權碼 MAIL_PASSWORD 或者 MAIL_PASSWORD 錯誤,報錯:
    [Swift_TransportException]                                                                               
    Failed to authenticate on SMTP server with username "[email protected]" using 2 possible authenticators 

可以將郵件驅動改成 MAIL_DRIVER=log, 就可以在本地日誌中看到郵件內容了,這在測試的時候會很有用。

比如,在配置.env中,修改郵件驅動為MAIL_DRIVER=log,將會把郵件傳送內容儲存到 storage/logs/laravel.log 中。
內容如下:

[2017-04-01 06:12:19] local.DEBUG: Message-ID: <727877e080177[email protected].generated>
Date: Sat, 01 Apr 2017 06:12:19 +0000
Subject: [ =?utf-8?Q?=E6=B5=8B=E8=AF=95?= ] SendMail - 2017-04-01 06:12:19
From: SendMailTEST <cnwytnet@163.com>
To: [email protected].com
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

這是一封來自Laravel的測試郵件.  

END.

參考連結:

相關推薦

Lumen/Laravel 5.4 使用郵箱 SMTP 傳送郵件

Lumen / Laravel 5.4 使用網易郵箱 SMTP 傳送郵件 獲取網易郵箱的伺服器和授權碼: 獲取伺服器地址: 點選【設定】 > 【POP3/SMTP/IMAP】: 伺服器地址: POP3伺服器: pop.1

python學習(5)--郵箱郵件異常解決辦法

python發郵件 解決辦法如下 nbsp -- bsp err error 發郵件 png 在用python發郵件時,發現用網易郵箱作為發件人。會出現以下異常: smtplib.SMTPDataError: (554, b‘DT:SPM 163 smtp12,EMCo

phpmailer實現簡單的郵件傳送(以郵箱smtp伺服器為例)

1、描述 第一次做到用php做到傳送郵件的功能。 Google了一下,php內建函式裡面有一個mail()函式。但是使用mail的話,會涉及到很多問題,我也沒有仔細研究過,反正都是和smtp協議息息相關。 於是,就去GitHub上開源的檔案傳送封裝好的專案

織夢網站使用郵箱發送郵件

body .com 郵件 png 技術分享 clas 參數 使用 基本 1. 進入網易郵箱,根據提示開通SMTP,期間要設置一次密碼 2. 進入織夢網站後臺。系統 - 系統基本參數 - 核心設置 網站發信EMAIL:填寫網易郵箱 是否啟用smtp方式發送郵件:

郵箱如何群發郵件

網頁郵箱是目前國內使用人數比較多的郵箱之一,今天一米軟體就來告訴大家網易郵箱如何群發郵件。   領先郵、領航郵支援一次性發送100個收件人;尊享郵支援一次傳送200個收件人;尊藏郵、尊耀郵支援一次性發送400個收件人。   您郵件群發地址可以分佈在收件人、抄送和密

CentOS 7.5配置mailx使用外部smtp傳送郵件

1.連線現成的smtp伺服器去傳送(此方法比較簡單,直接利用現有的smtp伺服器比如qq、新浪、網易等郵箱,只需要直接配置mail.rc檔案即可實現) 2.自己搭建私有的smtp伺服器(需要用到postfix、bind等服務) 本文章只介紹第一種方式去實現 具體配置步驟如下: 1、安裝mailx y

關於C#如何利用QQ郵箱SMTP傳送郵件

 今天寫傳送郵件的時候,用163可以正常傳送,但是利用QQ傳送不了郵件,後來發現是QQ郵箱的SMTP使用了SSL加密,所有必須啟用SSL加密,並且指定埠就可以傳送了。 public vo

thinkphp5 使用163郵箱smtp傳送郵件教程

兩種方法: 使用composer安裝phpmailer composer require phpmailer/phpmailer composer安裝太慢,我使用了直接下載的方法,下載後直接放置在extend解壓 然後在common了寫一個函式 <?php

[IT資訊]郵箱從3.5版本更新到極速4.0版本

今天,在登入網易郵箱時發現網易已經從原來的極速3.5版本更新到極速4.0版本,而且微調了郵箱內部使用風格,預設多頁面,顯示資料夾中未讀郵件等,顯得很直觀,很方便。而且預設登入的模式已經是4.0版本了。極速4.0 (2011-06-22)網易郵箱極速4.0啟用全新第四代Ajax引擎,全面支援 HTML5標準,對

使用JavaMail進行簡單SMTP郵件傳送測試,從郵箱傳送到QQ郵箱

===========TLS版本=========== 本文使用的JavaMail版本為1.5.2 import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Messa

Python使用SMTP傳送郵件(163,yeah等郵箱已測試可以)

#! /usr/bin/env python # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText

Laravel 5.4 使用 Mail 傳送郵件獲取驗證碼功能(使用的配置郵箱為126郵箱

1 <?php 2 3 namespace App\Modules\Liveapi\Http\Controllers\Personnel; 4 5 use App\Modules\Liveapi\Http\Controllers\Controller; 6 use Illuminate

Laravel 5.4建站06--API 認證系統 Passport

檢查 resp alt pre tails provide 函數 onf gis 介紹 在 Laravel 中,實現基於傳統表單的登陸和授權已經非常簡單,但是如何滿足 API 場景下的授權需求呢?在 API 場景裏通常通過令牌來實現用戶授權,而非維護請求之間的 Sessio

laravel 5.4 導出excel表格

配置文件 fig namespace com cad 修改 表格 新建 eat 1.在laravel根目錄下面找到一個composer.json文件 打開並在require下面加上一句話,如圖所示: 註:以後這個excel的版本號可能還會修改 2.執行 compo

laravel 5.4 刪除引入layer文件的寫法

laravel 5.4 刪除引入layer文件的寫法最新發現一個layer 的js文件引入laravel框架中<script type="text/javascript" src="{{asset(‘js/layer/layer.js‘)}}"></script><td>&

Laravel 5.4 migrate時報錯: Specified key was too long error

code php pdo oot uniq ble defaults return utf8編碼 Laravel 5.4默認使用utf8mb4字符編碼,而不是之前的utf8編碼。因此運行php artisan migrate 會出現如下錯誤: [Ill

Laravel 5.4+ Dingo +Jwt 快速搭建 API系統

composer dingo jwt laravel5.5 api 剛進入新公司,比較忙,只能抽時間來寫寫比較簡短的博文總結,還望見諒。 最近公司要從實業轉型線上,決定用laravel 來做快速開發,而一些同事之前沒有用過laravel,尤其是api 的快速搭建,一致想讓我

Laravel 5.4 快速開發簡書

PHP第1章 課程介紹介紹課程的大體脈絡和課程安排第2章 Laravel 5.4介紹本節課會帶領大家介紹laravel的各個版本歷史以及討論php框架的未來發展趨勢。把laravel周邊的生態環境一一展示。第3章 安裝啟動Laravel項目本章介紹laravel是如何安裝的,我們將使用composer工具對l

為什麽用郵箱

手機 網站 郵箱 收信 自己 網易 無法訪問 直接 為什麽 網易郵箱在收發郵件方面非常專業,能收到來自Google、FB、Twitter等正常情況下國內無法訪問的網站的郵件,相比如QQ、139等郵箱要麽收信非常慢,要麽就幹脆直接屏蔽掉來自這麽網站的郵箱,導致用戶根本就不

HTML自定義滾動條(仿郵箱滾動條)轉載

基本上 fma 內容 scrollbar color http code %20 water 它是使用CSS中的偽元素來實現的,主要由以下三個來完成: 1. -webkit-scrollbar:定義滾動條的樣式,如長寬。 2. -webkit-scrollbar-thumb