vagrant・centosからsendmailでメールを送信する

まず完成版から

vagrantのコマンドラインで以下のように打ちます

[vagrant@localhost postfix]$ sendmail myaccount@gmail.com
Subject: test
test content
.

自分のgmailアカウント
vagrantからのメールが届いてますね。

ここまで来るのに5~6時間かかりました。。。

まず、postfixをインストール後、

sudo yum -y install cyrus-sasl-md5 cyrus-sasl-plain

そして、/etc/postfix/main.cfファイルの編集

# 116行目 inet_interfaces = localhostを編集
inet_interfaces = all

# 119行目 inet_protocols = allを編集
inet_protocols = ipv4

# 318行目 以下追加
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_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_sasl_security_options = noanonymous
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt

因みに、main.cfの「318行目」は末尾ではありませんのでご注意を。

続いて、16桁のGmailのアプリパスワードを生成します。
https://secuirty.google.com/settings/security/apppasswords

その後、/etc/postfix/に、sasl_passwdファイルをvimで作成します。パスワードはつくったアプリパスワードを入力。

[smtp.gmail.com]:587 example@gmail.com:app_password(16桁)

ここで、passwordにgmailの普通のパスワードを入れると、authentification errorになるのでご注意。

その後、postfixのディレクトリからコマンドラインで

postmap sasl_passwd

として、sasl_passwd.dbを作成します。

そして

sudo service postfix restart

また、gmailの設定で、安全性の低いアプリ(失礼な!)の設定を変更する必要があります。

これでsendmailが使えるようになります。あて先は、gmail以外でもOKです。送信元がvagrantになってました。カッコいい!

[vagrant@localhost postfix]$ sendmail myaccount@gmail.com
Subject: test
test content
.

受信されてないようでしたらログを確認。

sudo cat /var/log/maillog

smtp結構複雑ですね。
別のvagrant環境立ち上げて試すなど、迷走しまくってました。。。