Edited at

Google Compute Engineでメールの送受信をする


結論


  • 独自ドメインを使っている場合はMailgunを使うのが良い


    • GCEから使う場合は此方から登録

    • 2018年7月より料金が改定されますが、無料枠利用者には影響なし



  • 受信もMailgun頼みになる(転送機能を使う)



    • 最近Gmailへの転送はエラーが出るようになってしまった(未解決) 原因不明のままいつの間にか直っていました




  • 何故かGmailからMailgunに設定したアドレス宛に送信できない(Gmail側でエラーが出る)。他のメールサービスからは送信できる→Google Cloud DNSを使い始めたので再度送受信チェックしてみたら送信できた


送信

SendGridを使おうとしていたのだが、独自ドメインの設定が上手くいかず断念(どうやら有料らしい)。Mailgunに乗り換えたらあっさりできた。


  1. Mailgun側で独自ドメインを先に設定しておく


    • すごく親切なのでとりあえず登録したら流れでやっておく

    • Mailgunのアカウント認証(要SMSが受信できる回線)が済んでいないと、当然ながらrejectされる




  2. Google Compute Engineのドキュメント通りに設定する

なお、Gmailなどのクライアントを通して送信メールアドレスとして使う場合は、587ポートなども使えるのでご安心を。

この場合、メールアドレスは自分のドメインで適当に設定(サーバー上にアカウントは必要ない)、認証情報は

https://mailgun.com/app/domains

から当該ドメインのページに移動して確認する。

公式ドキュメントも参照。

https://documentation.mailgun.com/user_manual.html#sending-via-smtp

GCEから直接送ると送信元が アカウント名@インスタンス名.c.プロジェクト名.internal となる。

自分はサーバーから一斉送信などはしない(クライアントを通しての送信しかしない)のでこれで良いかなと思っている。


受信

サーバー側の設定は何も要らなかった。

受信アドレスについてもサーバー上にアカウントは必要ない。

Mailgunのダッシュボードに、設定したドメインのメールアドレスにメールが来た時にどうするかフィルタをかけて設定する場所があるので、とりあえず全部自前のメールアドレス(フリメとか)に転送しておけば良い。