Laravel6でメール送信簡易テスト(Tinker)

2020/07/02

前回、laravel6でローカル環境にてメール送信のテストをしました。

ローカル環境ではログファイルにメール内容を出力していましたが、ここからは実際にサーバーにUPしてメール送信ができるか試してみます。

そのためには .envファイル(環境設定) にレンタルサーバー(サクラレンタルサーバ)のSMTPを設定します。

ただ、いちいちサーバにUPして動作確認するのは面倒ですよね。

Laravelでは Tinker(ティンカー) という便利な機能を使って、手軽るにメール送信テストができます。

今回は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 を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-基礎知識