レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

[備忘録] postfixを介して、GmailのSMTPを使ってメール送る設定

本日詰まったのでメモ
centos 7 minimam とMac El Captain でpostfixを介してGmailSMTPサーバー経由でメールを送る

AWSのセキュリティーグループでアウトバウンドのport=587を開けておくこと)

まずはpostfix がインストールされていない場合centos7 minimamにインストール

yum install postfix # macでは不要
yum install cyrus-sasl-plain # macでは不要

centosではiptablesでポート25も開けておく

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT # macでは不要

一応確認コマンド

service iptables status # macでは不要

sendmailpostfixが共存している場合、以下のコマンドでpostfixを有効にしておく

alternatives --config mta # macでは不要

postfixではsasl認証を使う、centos7minimamではyumであらかじめインストールしておらずつまった

sudo vi /etc/postfix/sasl_passwd

追記内容

smtp.gmail.com:587 メールアドレス@gmail.com:パスワード

chmod 600 /etc/postfix/sasl_passwd

postfixに読み込ませてDB化するコマンド

sudo postmap /etc/postfix/sasl_passwd

postfix設定ファイルの本丸へ

sudo vi /etc/postfix/main.cf

以下を追記

# Minimum Postfix-specific configurations.
mydomain_fallback = localhost
relayhost=smtp.gmail.com:587

# Enable SASL authentication in the Postfix SMTP client.
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

# Enable Transport Layer Security (TLS), i.e. SSL.
smtp_use_tls=yes
smtp_tls_security_level=encrypt
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
tls_random_source=dev:/dev/urandom

postfix を起動します。

sudo postfix start
#終了コマンドは以下
#sudo postfix stop
#リロードコマンドは以下
#sudo postfix reload

メール送信確認

date | mail -s "test" 送り先メールアドレス

appendix

TSL接続確認

openssl s_client -connect smtp.gmail.com:587

メール送信に関するログはcentでは以下

tail -f /var/log/maillog

おまけ PHPでメール送る設定

vi /etc/php.ini
969行目あたり

sendmail_path = /usr/sbin/sendmail -t -i

参考
http://d.hatena.ne.jp/ayokoyama/20061207/p1