Laradockはオールインワンで便利なので、PHP絡みでちょっとした開発のときは、マルチプロジェクト環境のLaradockから必要なコンテナを起ち上げて、ちょこちょこっと作っちゃうとかできて重宝しています。
そんなわけで非常にマニアックかと思いますがLaradockにて
- nginx
- MySQL
- MailHog
を起ち上げてWordPressを動かしたときの、MailHog設定について、ちょっと躓いたのでメモ。
mhsendmailのインストール
WordPressはメール送信に、php.iniに設定してあるsendmailを使うみたいで、Laradockのデフォルトの設定だとメール送信をMailHogがキャッチしてくれません。(エラーになる)
sendimailをMailHogにしてくれる mailhog/mhsendmail
をインストールします。
###########################################################################
# mhsendmail:
###########################################################################
RUN curl -sSLO https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail
Final Touch の上辺りに追加するとよいかも。
; sendmail_path =
sendmail_path = "/usr/local/bin/mhsendmail --smtp-addr=mailhog:1025"
php***.ini は使うバージョンに合わせて適宜修正
Docker再構築
すでに起動済みの場合は再構築
$ docker-compose build --no-cache php-fpm
以上で、PHPのsendmailからMailHogに接続できます。
これで、WordPressから送信されたメールをMailHogでキャッチすることができるようになります。
WordPressでメール文字化け設定
WordPressからのメールをMailHogで受けられるようになりましたが、そのままだと文字化けしてしまうので、WP Multibyte Patchの設定をする。
<?php
$wpmp_conf['mail_mode'] = 'UTF-8';
ファイルがない場合は作成する。
以上、Laradock環境でWordPressを動かしてMailHogでメールをキャッチする方法です。
そんな状況あまりないと思うけど備忘録として。
参考
https://laradock.io/
https://github.com/mailhog/mhsendmail
https://www.tecking.org/archives/5868
https://ja.wordpress.org/plugins/wp-multibyte-patch/
https://qiita.com/Taichi-yzrh/items/4b281bc9934c6c2dcd90