mailgunアカウント登録
mailgunのAPIを使うにはアカウント登録が必要です。
公式ページにアクセスし「Start Sending」をクリックしてください。
アカウント登録ページが表示されます。
必要情報を入力してください。
「Add payment info now」のチェックを外しておけば、クレジットカード情報は入力しなくて済みます。
※後から有償版に切り替えたい場合は、ダッシュボードの「Account Settings」>「Billing plan」から切り替えることができます。
アカウントを登録すると、公式からメールが2通届きます。
「Hi [登録者名], please verify your Mailgun account」のメールの方に記載されているURLをクリックしてメール認証を行います。
次に認証コードの登録を行います。
画像をなくしてしまったのですが、メール認証を行うと携帯番号を入力する画面が表示され、電話番号の入力を求められます。番号を入力して認証コードの送信依頼を行うと、番号を入力した端末に認証コードが送信されます。
送信された認証コードを、「Verlflcation Code」に入力して「Validate」を押してください。
認証に成功してダッシュボード画面が表示されればアカウント登録は完了です。
Laravelの下準備
Guzzle HTTPライブラリを入れる
以下のコマンドを実行します。
composer require guzzlehttp/guzzle
.envファイルに設定を記述
ドメインの確認
ダッシュボード画面から「Sending」>「Domains」をクリックします。
「Name」以下に表示されているものがドメインとなります。
API keyの確認
「Name」のドメインをクリックし、APIの「Select」>「cURL」をクリックするとAPI keyを確認することができます。
.envに記述
- MAIL_DRIVER
-
mailgun
と記述します
-
- MAILGUN_DOMAIN
- ドメインを記述します
- MAILGUN_SECRET
- API keyを記述します
※API keyやドメインをコピペするときに、最後に半角スペースなどが入らないように気を付けてください。
MAIL_DRIVER=mailgun
MAILGUN_DOMAIN=YOUR_MAILGUN_DOMAIN
MAILGUN_SECRET=YOUR_SECRET_KEY
これでLaravelの設定は完了です。
メール受信設定
ダッシュボード画面から「Sending」>「Domains」をクリックし、「Authorized Recipients」の「Email address」に受信するメールアドレスを入力して「Save Recipient」を押します。
入力したメールアドレス宛に「Would you like to receive emails from sankosc on Mailgun?」というタイトルのメールが届くので、「I Agree 」を押します。
Confirm画面が表示されるので「Yes」を押します。
Successと表示されれば受信設定は完了です。
メール送信
実装
以下のコマンドを実行します。
php artisan make:mail MailgunTest
app/Mail
以下に生成されたMailgunTest.php
を編集していきます。
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class MailgunTest extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('mails.mail')
->text('mails.mail')
->subject('タイトル')
->with([
'text' => '本文',
]);
}
}
build
メソッド内でメールテンプレートとなるviewファイルに、メールのタイトルと本文を記述しています。
次にresources/views
以下にmailsフォルダを作成し、mail.blade.php
ファイルを追加して以下のように編集します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>{{$text}}</body>
</html>
送信テスト
tinkerから送信テストをしてみます。
php artisan tinker
Psy Shell v0.10.4 (PHP 7.2.15 — cli) by Justin Hileman
>>> \Mail::to('送信先アドレス')->send(new App\Mail\MailgunTest());
=> null
メールが届きました。