MTA を SendGrid 宛に変更する
SendGrid はAPIでメールを送信することもできますが、既存のシステムのメール送信部分をAPIで作り直すのは面倒だと思います。SendGrid は、自サーバーのMTA(sendmail や Postfix)のメール配送を SendGrid に中継して貰うことができます。
Postfix の設定方法
公式ドキュメントはこちらになります。
手順1: main.cf の修正
/etc/postfix/main.cf の末尾に、以下の記述を追加します。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_security_level = encrypt
header_size_limit = 4096000
relayhost = [smtp.sendgrid.net]:587
smtp_tls_security_level
が重複してエラーになる場合があります。
その場合は、行頭に#を追加して、コメントアウトしておきます。
#smtp_tls_security_level = may
手順2: sasl_passwd の作成
先にAPIキーを作成します。
sasl_passwdを新規作成します。
sudo vi /etc/postfix/sasl_passwd
sasl_passwdファイルに、上記で作成したAPIキーを以下のように記述します。
[smtp.sendgrid.net]:587 apikey:(APIキー)
パーミッションを変更します。
sudo chmod 600 /etc/postfix/sasl_passwd
Postfixに設定を反映します。
sudo postmap /etc/postfix/sasl_passwd
手順3: postfix の再起動
sudo systemctl restart postfix
GMailで警告が表示される
このメールにはご注意ください
このメールはなりすましの可能性があります。メールの送信元があなたのアカウントになっていますが、Corporation メール では実際の送信元を確認できませんでした。自分でこのメールを送信したことが確かな場合以外は、リンクをクリックしたり、機密情報を返信したりしないでください(本当の送信者はあなたのアカウントに実際にアクセスできるわけではないため、パスワードを再設定する必要はありません)。
これは何?(原因)
GMailを独自ドメイン(自社ドメイン→〇〇@example.com)で利用する、コーポレート(企業)メール機能を利用していると、上記のような警告が表示されます。
原因は、GMailではないIPアドレスから、メールを送信しているからです。(偽装メールだとGMailに判断された)
対策
DNSに、メールを送信するサーバーのIPアドレスを登録することで、正当なメール送信だと判断されます。具体的には、以下のように、TXTレコードに、SPFを追加します。
v=spf1 +mx +ip4:xxx.yyy.zzz.123 +ip4:xxx.yyy.zzz.456 ~all
+mx
は、MXレコード(GMailを指定している)、+ip4:xxx.yyy.zzz.123
は、メールを送信するサーバーのIPアドレスを追加します。~all
は、これら全ての意味です。
ムームードメイン の ムームーDNS の場合は、以下のようになります。
Discussion