簡易メールサーバをdockerを利用して無理やり作った
今年もあと少しですね。
新年からブログをリニューアルしたいなと思い、
nginx + http2 + ssl + サイトジェネレーター(Pelicanの予定)の構成を考えております。
そのための証明書をstartsslで取得しようとしたところ、
domainのverifyの部分で、取得したいドメインのメールアカウントへ認証コードを送信する箇所に出くわしました。
該当のドメインはwebサービス以外での利用を考えていなかったので積んでしまいましたw
ただ、ブログのリニューアルはしたかったので、いろいろと調べていたところ、
pythonのsmtplibのdebugが使えそうだったので、dockerで仕組みを作ってみました。
流れとしては
- muumuu-domainのカスタムDNSで、
tsh.tech
のMXレコードをtsh.techに設定 dockerのlogを見れる環境を整備する
- smtplibのdebugモードが標準出力にメールのヘッダーを出力する
- dockerの標準出力は、docker logsで確認できるが、
- docker用のcoreosにログインして、
docker logs イメージID
が面倒 curl tsh.tech:8000/logs
でログが見れるのは便利- しかも必要なときにだけ
terraform apply
で環境するできるので、良い! - 構築はterraformで
テストメールを送信して、本文の内容を参照できることを確認する
- telnet使ったら通信できなくてだいぶハマりました
- 普通にメールを送ったらログが出力された
やってみて
- 当たり前ですが、メールアドレスの概念がなく、どんなメール宛のメールも受け取れるのがなんか不思議な感じがしました
- とりあえず、メール本文はわかるので目的は果たせたのですが、もうちょっといいやり方がないのかなと思いました
- 後は、telnetではまった時に
/usr/bin/toolbox
というものを知ったのがとても良かった- dockerでの通信の切り分けとかどうすればいいのかよくわからなかったですが、toolboxで起動して普通にtcpdumpとか良いです!
- とりあえず、SSL証明書取得できたので良かったです!
本題に進みたいと思います。