Laravelのメール送信をsmtp以外のsendmailに設定

レンタルサーバーにLaravelアプリケーションを設置する際にメール送信はデフォルトのsmtpで設定していたのですが、smtpだと毎回メールアドレスを作成する必要があって手間でした。

しかしレンタルサーバーなのでsmtpで設定できるメールアカウントは作り放題なので (自分が使っている XSERVER の場合) あまり気にも留めていなかったのですが、WordPressの設置をしている時にはメールアカウント必要なかったから作る意味ないなと思い直し調べました。

公式のドキュメントを見ても具体的な指定は無いですが、sendmail を使ってサーバー内でメール送るように設定するには .env の指定だけ変えれば問題ありません。それが以下

MAIL_MAILER=sendmail
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=<SPFレコード指定したドメインの好きなアドレス、もしくはサーバーホスト名でも可>
MAIL_FROM_NAME="${MAIL_FROM_ADDRESS}"

sendmailの場合には MAIL_FROM_ADDRESS を指定する必要があります。あとsendmailなのでレンタルサーバーで稼働している事が前提条件です (sendmailを設定したサーバーならなんでも可)

MAIL_HOST=mailhog の設定は不要ですが、とりあえずまとめました。 MAIL_MAILER と MAIL_FROM_ADDRESS を指定すれば可です。上記設定をすればsmtp用のメールアドレスを作成せずともLaravelからメール送信が出来ます。

レンタルサーバーで問題になる場合といえば送信上限が考えられます。レンタルサーバーの仕様から超えてしまう場合は素直に別サービスを使いましょう。以上、おしまい。