JavaScriptを有効にしてください

【Docker】MailHog を利用してメールテスト環境を作る

 ·  ☕ 1 分で読めます

MailHog を利用してメールテスト環境を作る

メールの送信テストを行う際にメールアドレスなどの用意が面倒だったため、MailHog を利用してメールテスト環境を作りました。

MailHog

MailHog

Docker に MailHog 導入

docker-compose.yml に以下を追加

1
2
3
4
5
6
  mailhog:
    container_name: mailhog
    image: mailhog/mailhog:latest
    ports:
      - "8025:8025"
      - "1025:1025"

PHP Dockerfile

PHP を利用してメール送信をするため PHP の Dockerfile に以下を追加

1
2
3
4
5
# mailhog対応
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
    && echo 'sendmail_path = "/usr/local/bin/mhsendmail --smtp-addr=mailhog:1025"' > /usr/local/etc/php/conf.d/sendmail.ini

--smtp-addr=mailhog:1025 の箇所は --smtp-addr=サービス名:SMTPポート番号 になります。

メール送信

実際にメールを送信してみます。

1
php -r "mail('test@example.com', 'テストタイトル', 'テスト本文', 'From: from@example.com');";

メール確認

MailHog の確認画面で送信の確認が出来ます。
http://localhost:8025/

一覧画面でメールが届いている事を確認
mailhog-list.png

詳細画面で本文を確認
mailhog-detail.png

これでメールのテストが出来ます。

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer