寄信

發信

https://laravel.com/docs/5.4/mail#introduction

  1. 安裝 Driver (選項)
  2. 修改 .env 並清除 config cache
  3. 用 artisan 快速建立初始化檔案
  4. 建立 MailController
  5. 建立 Route
  6. 建立 View
  7. 測試是否 work

安裝 Driver (選項)

  • smtp
  • sendmail
  • mailgun
  • mandrill
  • AWS ses
  • ...
composer require guzzlehttp/guzzle

相關檔案位置

  • .env
  • config/mail.php
  • config/service.php
  • app/Mail/
  • resources/views/emails/

Mailtrap.io — Fake smtp testing server. Dummy smtp email testing

修改 .env

若 MAIL_USERNAME 和 MAIL_PASSWORD 為空值,則會使用 mail.php 內設定。

MAIL_FROM_ADDRESS="admin@admin.com"
MAIL_FROM_NAME=Admin

Mailtrap

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

Gmail

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your@gmail.com
MAIL_PASSWORD=yourpassword
MAIL_ENCRYPTION=tls

修改 Gmail 安全性設定

允許安全性較低的應用程式設定,https://www.google.com/settings/security/lesssecureapps 登入後設為啟用

清除 cache

php artisan config:cache

用 artisan 快速建立初始化檔案

php artisan make:controller MailController

純文字 / HTML

php artisan make:mail NewUserWelcome
<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class NewUserWelcome extends Mailable
{
    use Queueable, SerializesModels;

    public function __construct()
    {
    }

    public function build()
    {
        return $this->view('view.name');
    }
}

傳值

public function build()
{
    return $this->text('view.name')->with([
        'name' => '劉小姐'
    ]);
}

共存

public function build()
{
    return $this->text('emails.text.user.newuserwelcome')->view('emails.html.user.newuserwelcome')->with([
        'name' => '劉小姐'
    ]);  
}

Markdown

php artisan make:mail NewUserWelcome --markdown=emails.markdown.user.newuserwelcome
public function build()
{
    return $this->markdown('view.name');
}

建立 Route

// routes/web.php
Route::get('/send','MailController@send');

建立 MailController

php artisan make:controller MailController
<?php

namespace App\Http\Controllers;

use App\Mail\NewUserWelcome;
use Illuminate\Support\Facades\Mail;
use Illuminate\Http\Request;


class MailController extends Controller
{
    public function send()
    {
        Mail::to('alincode@gmail.com')->send(new NewUserWelcome());
    }
}

練習題

新增註冊成功信

  1. Markdown 格式
  2. 使用純文字
  3. 使用自訂 Html 格式
  4. 添加到 RegisterController 中

results for ""

    No results matching ""