Google Cloud Postfix インストール
Google Cloudのドキュメントに従って、SendGrid経由でメールを送信する設定を行う。
まず、PostFixをインストールする。プロンプトが表示されたら、[Local Only] の構成を選択し、デフォルトのドメイン名を受け入れる。
# apt install postfix libsasl2-modules
/etc/postfix/main.cfを編集し、以下の行をコメントアウトする。
# smtp_tls_security_level=may # relayhost = # default_transport = error # relay_transport = error
以下の行を最後に追加する。
relayhost = [smtp.sendgrid.net]:2525 smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd header_size_limit = 4096000 smtp_sasl_security_options = noanonymous
Google Cloud Marketplaceを使用して、SendGridメールサービスに登録する。
[Settings] > [API Keys] でAPIキーを作成し、そのキーを下記の{API_KEY}の部分にコピペしてファイルをパスワードファイルを修正し、有効化。
# echo [smtp.sendgrid.net]:2525 apikey:{API_KEY} >> /etc/postfix/sasl_passwd # postmap /etc/postfix/sasl_passwd # chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
動作確認のためmailutilsをインストールし、テストメールを送信し正しく動作することを確認する。
# apt install mailutils # echo "test mail" | mail -s "test" xxx@xxx.xxx
届いたメールを確認すると、
SPF: PASS(IP: 198.37.146.154) DKIM: 'PASS'(ドメイン: sendgrid.net)
となっており、自分でSPFやDKIMの設定を行わなくても大丈夫となっている。メールはデフォルトのドメイン名から「sendgrid.net 経由」で送られていることが表示される。
この手順でメールの設定をすると、送信はできるけれども受信は上手くいかない。結局は以前の設定と同じように設定し、以下の設定を追加しFirewall設定でsmtpのポートを開けることで、SendGrid経由の送信とGoogle Cloud Engineの受信ができるようになった。
########################### # Settings for Sendgrid ########################### smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination relayhost = [smtp.sendgrid.net]:2525 smtp_tls_CApath = /etc/ssl/certs smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache #smtp_tls_security_level = may smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous header_size_limit = 4096000
Vultrのサーバでmailmanを使用していたときは自分でSPFやDKIMの設定を行っても配信メールがスパム扱いになってしまっていたが、こちらはそんな事もなく楽チン。
コメントを残す