21
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker環境のメールはmailhogで決まり

Posted at

docker環境でメールどうしよう問題

  • 直接送りゃいいんじゃね?
  • いやいや、事故るっしょ。1万通とかメール送信してしもたら・・・
  • そのためだけにsendgridとかmailgunとか
  • おおげさ
  • postfixのコンテナあげる?
  • 環境つくるだけで一苦労しそう(docker-hubにあるけど)

ということでいろいろ探してたらMailHogというものを発見しました

  • メリット
  • 事故らない
  • いくらメール投げてもローカルにしかとどまらないので
  • 設定が簡単
  • WEB UIでメール確認ができる
  • デメリット
  • 日本語メールは文字化けすることがある、UTF-8でおねがいしたい
  • なぜかdockerコンテナが死ぬことがある、まあコンテナのリスタートしてください

Howto

1. docker-compose.ymlにはこれだけ追加するだけ

docker-compose.yml
mailhog:
  image: mailhog/mailhog
  ports:
    - "8025:8025"

2. mhsendmailを入れてください

  • https://github.com/mailhog/mhsendmail
  • goで出来ています
  • yumとかaptでsendmailいちいち入れるの面倒なので、こいつをマウントしてやれば良い
  • 例えばこんな感じ
docker-compose.yml
volumes:
  - "./bin/mhsendmail:/usr/local/bin/mhsendmail"

3. phpの人向け

  • webサーバのコンテナのphp.iniに追加(変更)しておくと、phpの標準mail関数でメール送信できますんで既存コードをいじらなくて済む
php.ini
sendmail_path = "/usr/local/bin/mhsendmail --smtp-addr=mailhog:1025"

以上です、快適なdockerライフを!!

21
27
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
21
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?