はじめに
Proxmox VEでGmailを送ろうとしたのですが、gmail notifications over ssl 587 portの通りではSASLで引っかかったので、うまくいった手順を書き残します。
postfix、libsasl2-modulesおよびsasl2-binをインストール
apt-get install -y postfix libsasl2-modules sasl2-bin
/etc/postfix/main.cfを書き換え
relayhost = [smtp.gmail.com]:587 #フォーラムでは何も書かれていませんが、こうしています(消す検証はしていません)。
/etc/postfix/main.cfに追加
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relayhost.hash
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_auth.hash
smtp_sasl_security_options = noanonymous #フォーラムではnoplaintext, noanonymousですが、SASLで引っかかりました。
smtp_use_tls = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
/etc/postfix/sasl_auth.hashを作成
user@gmail.com user@gmail.com:password
# default
[smtp.gmail.com]:587 user@gmail.com:password #フォーラムではこの行はありませんが、こうしています(消す検証はしていません)。
/etc/postfix/sender_relayhost.hashを作成
user@gmail.com [smtp.gmail.com]:587
パーミッション設定・設定反映
postmap /etc/postfix/sasl_auth.hash
postmap /etc/postfix/sender_relayhost.hash
chmod u=rw,g=,o= /etc/postfix/sasl_auth.hash
chmod u=rw,g=,o= /etc/postfix/sasl_auth.hash.db
postfix reload
テスト
date | mail -s test user@gmail.com
ログの確認
tail -n 10 /var/log/mail.log
その他
Proxmox VEのインストール時にメールアドレスを要求されますが、それはPAMでrootユーザーのメールアドレスとして設定されています。そのためrootユーザーにメールを送ればそのメールアドレスに送られるはずです。
date | mail -s test root@hostname.local
からくりとしては/root/.forwardに/usr/bin/pvemailforwardを読むように書かれており、pvemailforwardでPAMを読みにいっているようです。