EC2のLaravel6.0環境で記事投稿時にメールMailgunを使いメール送信する AWS/Laravel連載(15)
はじめに
前回までの記事で作ってきたアプリケーションで、投稿した場合にメールが届くようにしてみましょう。
EC2のLaravel6.0環境でMailgunを使いメール送信する AWS/Laravel連載(14)
Mailableクラスを作る
基本的にいつもどおり公式ドキュメントに沿っていきます。
メール 6.0 Laravel
$ php artisan make:mail PostSent --markdown=emails.posts.sent
Mailableクラスのapp/Mail/PostSent.phpと、メール本文resources/views/emails/posts/sent.blade.phpの2ファイルが生成されます。
<?php
namespace App\Mail;
use App\Post;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class PostSent extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
protected $post;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(Post $post)
{
$this->post = $post;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from('[email protected]')
->subject('新しく投稿しました')
->markdown('emails.posts.sent')
->with(['postTitle' => $this->post->title]);
}
}
implements ShouldQueueしているので、送信時に自動的にキューが有効になります。
比較的処理が重いメール送信処理が完了しないと投稿時APIのレスポンスが来ないのはイマイチなためです。
@component('mail::message')
# 投稿がありました
{{ $postTitle }}
@component('mail::button', ['url' => route('home')])
投稿を見る
@endcomponent
{{ config('app.name') }}
@endcomponent
投稿時のクラスにメール送信部分を実装します。
<?php
namespace App\Http\Controllers;
use App\Post;
use Illuminate\Http\Request;
use App\Mail\PostSent;
use Illuminate\Support\Facades\Mail;
...
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|max:255',
'content' => 'required',
]);
$post = $request->user()->posts()->create($request->all());
Mail::to($request->user())->send(new PostSent($post));
return $post;
}
本日は以上です。
Author And Source
この問題について(EC2のLaravel6.0環境で記事投稿時にメールMailgunを使いメール送信する AWS/Laravel連載(15)), 我々は、より多くの情報をここで見つけました https://qiita.com/rf_p/items/4d774e139b433c4a7753著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .