dockerでWordPRess+mailpitでSMTPメール送る
ローカル環境で開発などをしているときに、メールの問題が起きたりします。メールをどうやった配送するかとか、受信するかになります。
PHPのコマンドを打ってやる方もいると思いますが、大変です。僕は正直プログラミングできないので、そもそもPHPなどでメールコマンドをいれて書くとかできません。
できてもWordPressの管理画面からテストメール送信などになります。
Docker環境ではどうやってやるのかなーと思って考えていたところ、mailpitというのがありました。これを使えば開発環境でもメールを受信できることができるのでやってみました。
環境
Docker環境としては以下のようになります。
- 環境:ローカル環境
- OS:AmazonLinux2023
- DB:MySQL8
- PHP:8.3
- ポート番号:80
- URL:http://IPアドレス/wp
WordPREssは別途インストール
DockerでWordPress環境が使えればいいので、正直公式のWordPressイメージを使う方が早いと思います。僕は個人的に公式イメージの多くがDebian系でコマンドなど慣れないので、LAMP環境だけ作ってWordPressなどは別途自分でインストールしたりします。
今回やりたいことはあくまでWordPressの環境下(ローカル環境)でメールの送受信ができればいいので簡単に公式のイメージ使う方をこだわりなければお勧めします。
yml
該当するymlだけ載せておきます。
services:
mailpit:
image: axllent/mailpit
container_name: mailpit
restart: unless-stopped
ports:
- "8025:8025"
- "1025:1025"
environment:
- MP_DATA_FILE:/data/mailpit.db
volumes:
- mp-data-file:/data # 永続化する
volumes:
mp-data-file:
こんな感じになります。PHPやMySQLの箇所は省いてます。公式イメージを使った場合はDBぐらいでいいのかな?と思います。
※今回はWordPressでmailpitを使うのが大事なので、WordPressがDockerで動く環境なら正直方法はどんなやり方でも問題ありません。
インストール
WordPressのインストール方法は割愛します。データベースの情報をいれてアクセスしてください
今回はルートディレクトリではなく、wp
というフォルダをドキュメントルートーの下に作ってやっています。
このあたりもインストールさえすれば特に問題はありません。どんなやり方でも自由です。基本的にWordPressが動けばなんでもよいです
注意点
- WordPressコンテナ(公式イメージ使う場合)
- MySQLコンテナ
- mailpitコンテナ
この3つが動いているのが大事です。
アクセス
にアクセスするとmailpit
にアクセスできます。まずはログインをしてみてコンテナが起動しているか確認するのが大事になります。
WordPRessから設定をする
無事にコンテナが起動していたらWordPressの画面から設定をしていきます。
SMTPプラグインを使用
Docker環境ではよくCUIから送ってますが僕がプログラムなどを組めるわけではないので、WordPressのプラグインで対応したいと思います。
- 使用プラグイン:FluentSMTP
設定方法
- SMTPホスト:mailpit
- SMTPポート:1025
- Encryption:none
- TLS:オフ
- Authentication:オフ
とします。これでテストメールを送ります。
SMTPホストはDockerのコンテナ名となります。
メール確認方法
実際にメールが送られたか確認をする必要があります
mailpitアクセス方法
http://IPアドレス:8025
へアクセスします。
メールが受信できていれば成功です
このようにメールが受信できていればテストは成功です
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS