LoginSignup
3
4

More than 3 years have passed since last update.

LaradockでWordPressを動かしてMailHogを使う

Posted at

Laradockはオールインワンで便利なので、PHP絡みでちょっとした開発のときは、マルチプロジェクト環境のLaradockから必要なコンテナを起ち上げて、ちょこちょこっと作っちゃうとかできて重宝しています。
そんなわけで非常にマニアックかと思いますがLaradockにて

  • nginx
  • MySQL
  • MailHog

を起ち上げてWordPressを動かしたときの、MailHog設定について、ちょっと躓いたのでメモ。

mhsendmailのインストール

WordPressはメール送信に、php.iniに設定してあるsendmailを使うみたいで、Laradockのデフォルトの設定だとメール送信をMailHogがキャッチしてくれません。(エラーになる)

sendimailをMailHogにしてくれる mailhog/mhsendmail をインストールします。

laradock/php-fpm/Dockerfile

###########################################################################
# 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 の上辺りに追加するとよいかも。

laradock/php-fpm/php***.ini
; 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の設定をする。

wp-content/wpmp-config.php
<?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

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4