Linuxで運用していると、メールの送受信のテストをする際に、外部のメールサーバへの送信確認を行ったりする必要があると思います。
いつも、内部のメールサーバなどがあってそれらの環境にアクセスできるならば良いのですが、そうもいかないことの方が多かったりします。
そんな時には、GMailのサーバを利用させていただいております。
そんな設定方法を記載しましょう。
必要なもの:
postfix
cyrus-sasl-plain
※どちらも、yum でインストールすることができます。
yum install postfix cyrus-sasl-plain
main.cfの編集
※ほかの部分は、構築する環境に合わせて、ご自由に編集してください
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_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
sasl_passwdの編集
vi /etc/postfix/sasl_passwd
ユーザ名:hogehoge
パスワード:fugafuga
[smtp.gmail.com]:587 hogehoge@gmail.com:fugafuga
postmap /etc/postfix/sasl_passwd
※ OSでIPv6を無効にしていて、Postfixの設定で無効にしていない場合、下記のエラーが表示されます。
postmap: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
postmap: warning: inet_protocols: configuring for IPv4 support only
この場合、119行目の行を書き換えてください。
inet_protocols = all
↓
inet_protocols = ipv4
root宛のメールをすべてGMailのアカウントに転送する
vi /etc/aliases
root: hogehoge@gmail.com
postalias /etc/aliases
postfixの起動
/etc/rc.d/init.d/postfix start
これで、postfixから、GMail宛にメールの送信を行うことが出きるようになります。
ただし、この方法の唯一の欠点は、差出人がGMailのアカウントになってしまうことです。
rootからのレポートメールを受信するだけならば、この設定で何ら問題はないでしょうが、
Googleに限らす、submissionポートからsasl認証でメールを送信する場合が多くなってきました。
下記にその設定を記載します。
main.cf
relayhost = [submission.mailserver.org]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
sasl_passwdの記述
submission.mailserver.org:587 usertname:password
sasl_passwdの生成
postmap /etc/postfix/sasl_passwd
Postfixをリロード・します。
Googleには、この様に記載されています。