2020/07/02
前回、laravel6でローカル環境にてメール送信のテストをしました。
ローカル環境ではログファイルにメール内容を出力していましたが、ここからは実際にサーバーにUPしてメール送信ができるか試してみます。
そのためには .envファイル(環境設定)
にレンタルサーバー(サクラレンタルサーバ)のSMTPを設定します。
ただ、いちいちサーバにUPして動作確認するのは面倒ですよね。
Laravelでは Tinker(ティンカー) という便利な機能を使って、手軽るにメール送信テストができます。
今回はTinkerを使ってのメール送信テストについてエントリーします。
Laravelでデフォルトで入っている機能です。プログラムをコマンドライン上で動かすことができます。DBのテーブル操作やメール送信など、ちょっとした動作確認に使えます。
手順
.envファイルの設定
レンタルサーバ(サクラ)のSMTPの設定は以下になります。
:
# メールドライバ―(メールの送信手段)を設定
MAIL_DRIVER=smtp
# 送信元の設定
MAIL_FROM=メールアドレス
MAIL_FROM_NAME=名前
:
# メールサーバのホスト名またはIPアドレスを設定
MAIL_HOST=アカウント.sakura.ne.jp
# メールポート
MAIL_PORT=587
# 送信先のメールアドレスを設定
# さくらで作成したメールアドレス
MAIL_USERNAME=メールアドレス
# 送信先のメールアドレスに接続するためのパスワードを設定
MAIL_PASSWORD=パスワード
:
設定ファイルのキャッシュを作成
.envファイルや config/*.php などの環境設定ファイルを編集したら、artisanコマンドで設定ファイルのキャッシュを作成します。
そうしないと変更した設定情報が反映されません。
php artisan config:cache
Tinkerでテスト送信
# Tinkerを起動
php artisan tinker
# Mailファサードを使ってテスト送信
Mail::raw('this is a demonstration.',function($message) {
$message->to('送信先メールアドレス')->subject('test');
});
Mail
ファサードのraw
メソッドを使います。
# 構文
Mail::raw('メール本文',クロージャー)
# 構文(クロージャーの箇所も記述)
Mail::raw('メール本文', function($message){
$message->to('送信先'))->from('送信元')->subject('件名');
});
実例
このようにTinkerを使えば、一行でテストメールを飛ばすことができます。
もし、メールフォームからメールが届かない事態になっても、これで問題の切り分けができますね。
また、Tinkerはメール送信以外にもDBのテーブル操作も可能なので、まだ使ったことがない人は一度利用してみてください。
以上です。
さくらのレンタルサーバ スタンダード
当サイトで実演 & 解説している Laravel のプログラムは「さくらのレンタルサーバー」の「スタンダード」プランの環境を前提にして解説しています。非常にコスパがよく利用者からも評価が高いサーバーです。もし、当サイトで解説している Laravel のチュートリアルを同じ環境で試して動かしてみたい方はおススメのサーバーです。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。