Docker MailserverからMailjetにrelayさせてEmailの送信をする

前回の記事ではメール受信にフォーカスして、Docker Mailserverを構築する方法について書いた。今回は、送信部分について設定してく。 スパムメール対策で、どのクラウド/ISPのネットワークでも基本的にoutbound向けの25番ポートはブロックされている(もし開いていると、世界中のsmtpサーバにメールを送りつけるとこができてしまうので)。その辺の事情はこのページにまとまっている。そのため、自前でメールサーバを立ち上げると、ユーザー認証付きでメールをRelayするSMTPサーバ経由で送ることになる。 このメールRelayのサービスは、自分の加入しているプロバイダ(ISP)が提供してくれることもあるし、自分のGmailを使うケースもよく見ます。しかし、メール送信ではスパム対策として機能するSPF, DKIMなどの設定が必要で、これらのRalayサービスだとそこまで細かく対応してないことが多い。 このEmailのRelayサービスはマーケティングツールなどでも使われることから、色々なサービスがある。今回はMailjetを使ってみる。Mailjetは、一日あたりの送信メール数が200通まで無料で使える。使い方にもよるけど、個人として使うには、メール受信(つまりMailjetは無関係)がほとんどで、200通あれば事足りる。もちろん、SPF, DKIMレコードも自動的に生成してくれるので管理がとても楽だ。 1. Mailjetのアカウントを作成する Mailjet メールアドレスとパスワードだけで、サインアップできる。 メールサービスなのに、登録のためにメールアドレスが必要というのは、「服を買いに行くための服」みたいなものだろうか。 2. MailjetでRelayホスト・アクセスキーを確認する MailjetのAccount Settingsを開いて、メニューパネルの中からSMTP and Sender Settingsに入る。 このページでRelayに 使うホスト名 ユーザー名 パスワード ポート番号(=587) を確認。 3. Docker Mailserverの設定 Docker Mailserverのdocumentページに従って、mailserver.envファイルの以下の項目を設定する。 RELAY_HOST RELAY_PORT RELAY_USER RELAY_PASSWORD 設定ファイルを変更した後、再起動。 $ docker-compose down $ docker-compose up -d 4. SPF, DKIMの設定 MailjetはSPF, DKIMのレコードも自動で生成してくれる。後は、その値をDNSに登録するだけだ。なんて楽なんだ! 再び、MailjetのAccount Settingsから、今度は、Setuo SPF/DKIM Authenticationに飛ぶ。 そこに、全てが書いてあるので、その通りにDNS側を設定。 しかも、Mailjet側から設定の検証もしてくれる。 問題なければ下記の通り、青信号になる。 5. メール送信テスト あとはEmailのクライアントから送信できるかを確認する。 送信数や送信先などは、全てMailjetのページから確認できる。 統計情報を出してくれるものありがたい(?)。 参考 Mailjet Docker Mailserver

January 30, 2022