コンテナでメールサーバを運用しているんだけど、SMTPリレーにGmailを使ってたんだけど、パスワード認証ができなくなったんでSMTPリレーが使えなくなってたんでIMAPで受信して送信はしないって(送信してもエラーる)運用をしてたんだけど、やっぱ不便なので無料で使えるSMTPリレーサービスをいろいろ探してた。
・Gmail:有料で使えるが設定が面倒
・Yahoo:固定IPなら使えるっぽいがDDNSなのでエラーる
・Outlook:駄目っぽい
・ブラストエンジン:試用できるがあらかじめ送信先の登録が必須で5件までなのでテストだけできる感じ
・Twilio SendGrid:法人のみ使えるみたい、個人なので登録拒否
・mailjet:英語のページのみでちょっとわかりずらいが一日200通まで無料で送信できる
なのでmailjetを使う事にした。まずはアカウントを作ってログインする。
そしたらAccountSettingをクリックする
SMTP and SEND API Settings をクリックする
ここがややっこしいんだけど、SMTPリレーのユーザー名ってmailjetのアカウントではなく、ここのAPI keyがユーザー名になるのだよ。で、パスワードがSecret Keyなのだ。最初はこのシークレットキーがないのでSee all API credentialsを押してシークレットキーを作成しないといけない。で、作成すると一瞬(といっても閉じなければ大丈夫)シークレットキーが表示されるのですかさずスクリーンショットを撮っとけ!
こんな感じでこの時だけ表示される
で、SMTPリレーでの情報は以下になる
・ユーザー名:APIキー
・パスワード:シークレットキー
・SMTPリレーサーバ:表示されているっもん
・ポート:587
でもこれだけじゃ送れないのでドメインの認証やらSPF and DKIMの設定をしないといけない。
こんな感じでドメインや送信アドレスを登録してActiveにする。
サーバまたはコンテナのルートディレクトリに指定の乱数名みたいな空のテキストファイルを作ってDNSにレコードとして登録して認証する。
SPFとDKIMもDNSレコードに登録してActiveにする。
mailserver.envの場合(docker-mailserverの場合)
で、Postfixのmain.cfにリレーサーバを入れて、sasl_passwdにリレーサーバとポート:APIキー:シークレットキーを記載してrelayhost_mapに@ドメイン リレーサーバ:ポートを記載してPostfixリスタート。
これでテストするとメールが送信できる筈。
こんな感じでダッシュボードでSMTPリレーで送付したメールが確認できる






