##新サービスをLaravel5.3で立ち上げる事にしたので備忘録
勉強する時間も無いのだけど…とにかくググって実装!
まずは標準のAuthを使えるようにする。
laravel/
php artisan migrate
php artisan make:auth
本題の登録時にメール送信は、5.1とかのやり方とか見つけれたのですが、どうも動かない…
自分なりに読み解いて下記対応で完成とすることにした。
###Config確認
config/app.php
'aliases' => [
'Mail' => Illuminate\Support\Facades\Mail::class,
##方法1
###Controller
RegisterController.php
use Mail; //aliasesが設定されているとそのまま宣言できる。
~~
// functionなり作って実行
Mail::send(
'emails.done', // テンプレートファイル呼び出せる
['user' => $user],
function($message) use ($user) {
$message->to($user->email)->bcc('bcc@example.com')->subject('登録完了のお知らせ');
}
);
###View
emails/done.blade.php
<p>ようこそ、{{ $user['name'] }} さん</p>
##方法2
laravel/
php artisan make:mail DoneMail
DoneMail.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class DoneMail extends Mailable
{
use Queueable, SerializesModels;
public $options;
public $data;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($options, $data)
{
$this->options = $options;
$this->data = $data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from($this->options['from'], $this->options['from_jp'])
->bcc($this->options['bcc'])
->subject($this->options['subject'])
->view($this->options['template']);
}
}
###Controller
RegisterController.php
use App\Mail\DoneMail;
use Mail; //aliasesが設定されているとそのまま宣言できる。
~~
// functionなり作って実行
$options = [
'from' => 'from@example.com,
'from_jp' => '【○○より】',
'to' => $mail_to,
'subject' => '登録完了のお知らせ',
'template' => 'emails.done'
];
$data = [
'mail_to' => $mail_to,
];
Mail::to($mail_to)->send(new DoneMail($options, $data));
###View
emails/done.blade.php
<p>ようこそ、{{ $user['name'] }} さん</p>
…
Facades…
Contracts…
う~ん…