user icon

postfixからGmail経由で送信する

最近何かと話題のGmailをpostfixのrelayhostに指定して、メールを送信してみます。
OSはちょっと色々と有って、CentOS6で試しました。

色々探したところ、RedHatにCentOS7でのやり方が書いてありました。
https://access.redhat.com/solutions/3201002
これだけだと不足だったのが後で分かったんですが・・・。

/etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
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_policy_maps = hash:/etc/postfix/tls_policy
# CentOS6 では以下も必要
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
CentOS6ではsmtp_tls_CApathの指定も必要でした。
また、これに伴ってca-certificatesも、最新のものに更新しておいて下さい。

/etc/postfix/tls_policy

[smtp.gmail.com]:587 encrypt

/etc/postfix/sasl_passwd

[smtp.gmail.com]:587 <user>@gmail.com:<password>
<user>は自分のGmailアカウントを、passwordは通常のパスワードを指定したのですが、送信出来ませんでした。
また色々と調べた結果、Googleのアプリパスワードが別途必要でした。次で作成したものを記載します。

Googleアプリパスワードの設定

  • 右上のGoogleアカウントに移動を選択。
  • セキュリティタブをクリックし、Googleにログインする方法から2段階認証プロセスを選択。
  • アプリパスワードを選択し、アプリ名に適当な名前を入れ、作成を押すとパスワードが表示されるので記録。
    ※16文字と言いつつスペースが空いているのですが、スペースは取り除いて16文字にします。

設定・テスト

postmapでhash化した後、再起動します。
cd /etc/postfix
postmap sasl_passwd
postmap tls_policy
service postfix restart
自身のGmailへ送信してみます。
echo mailtest | mail -s mailtest <user>@gmail.com
こんな感じで届きました。
Facebooktwitterlinkedintumblrmail
名前
E-mail
URL
コメント

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)