mailtrapでメール送信(ローカル環境向け)

前回、Laravelでお問い合わせフォームを作成しました。

しかしSMTPサーバでメールを送信するのではなく、ログに出力するやり方をしました。

今回は実際にメールを送信してみます。

まずは、ローカル環境でも気軽るに確認できるように mailtrap というサービスを利用します。

なお、スクリプトに関しては前回のチュートリアルで作成したスクリプトを利用します。

メール送信(ログに出力)

なので、今回は設定内容を変えるだけになります。

 

mailtrapとは

mailtrap.ioとは仮想のsmtpテストサーバーです。

SMTPでメールを送信しても実際の宛先には飛ばさず、WebサイトやAPIから確認することができるというサービスです。

Laravelではデフォルトの設定でmailtrapが設定されています。

.envファイルを見ると以下のように記述されています。

:
MAIL_DRIVER=smtp #メールドライバー(メールの送信手段)を設定する。
MAIL_HOST=mailtrap.io #メールサーバのホスト名またはIPアドレスを設定する。
MAIL_PORT=2525 #メールポートを設定する。
MAIL_USERNAME=null #SMTPのユーザ
MAIL_PASSWORD=null #SMTPのパスワード
MAIL_ENCRYPTION=null #暗号化の方法を指定する。

ご覧のとおり、MAIL_HOSTの値はmailtrapになっています。

それでは実際に使ってみます。

 

チュートリアル

SMTPサーバに mailtrap を設定してローカル環境でメール送信をしてみます。

 

流れ

1)ユーザー登録
2).envファイルの設定
3)config/mail.phpの設定
4)動作確認

 

1)ユーザー登録

mailtrapの公式サイト mailtrap.io にアクセスしてサインアップします。

メールアドレスとパスワードだけで登録できます。

サインアップが終わると確認用のメールが飛んできますのでリンクをクリックしたら登録完了です。

 

2).envファイルの設定

Inboxesのなかから既に作成されているDemo InboxをクリックするとInboxの詳細が表示されます。

SMTPのHOSTやAUTHのログインID、パスワードなどの情報が表示されるので、.envファイルに設定します。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME="mailtrapのユーザー名"
MAIL_PASSWORD="mailtrapのパスワード"
MAIL_ENCRYPTION=null
【解説】
基本的にMAIL_USERNAMEとMAIL_PASSWORDだけコピペすればOKです。
mailtrapに記述されているsendmailのパスは config/mail.php にすでに記述されています。

 

3)config/mail.phpの設定

次に送信元アドレスがないとエラーになるのでconfig/mail.phpに送信元アドレスを入力します。

  //'from' => ['address' => null, 'name' => null],
  'from' => ['address' => "laravel@honjou.com", 'name' => "laravel学習帳"],

これでローカル環境でもテストメールができます。

実際にテストしてみます。

 

4)動作確認

それでは、実際にローカル環境でメール送信テストをやってみます。

入力画面

 
確認画面

 
送信完了画面

 
mailtrapの画面

上記のように確認できればOKです。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-チュートリアル, 初級