ローカル環境でメール送信テストをするためにMailCatcherをDockerで構築します。
# mailcatcher --version
mailcatcher 0.7.1
# docker --version
Docker version 19.03.8, build afacb8b
# docker-compose --version
docker-compose version 1.25.4, build 8d51620a
※ローカル環境でDockerが使用できる前提です。
Dockerfile
とdocker-compose.yml
を配置したディレクトリでdocker-compose
のビルドと実行
docker-compose build
docker-compose up
または
docker-compose up --build
- コンソールに以下が出力されます。
Creating docker_mailcatcher ... done
Attaching to docker_mailcatcher
docker_mailcatcher | Starting MailCatcher
docker_mailcatcher | ==> smtp://0.0.0.0:1025
docker_mailcatcher | ==> http://0.0.0.0:1080/
- ブラウザで
http://localhost:1080
にアクセスすると以下のようなメーラーが表示されます。
- ローカル環境でアプリケーションのメール送信設定(smtp)をホスト
localhost
、ポート1025
に設定しメール送信するとMailCatcherでメールが受信できます。
Example. Python
import smtplib
from email.mime.text import MIMEText
to_addr = "[email protected]"
from_addr = "[email protected]"
message = "ほん<hr>ぶん"
msg = MIMEText(message, "html")
msg["Subject"] = "けんめい"
msg["To"] = to_addr
msg["From"] = from_addr
server = smtplib.SMTP("localhost", 1025)
server.send_message(msg)
server.quit()