2010年08月25日
メールサーバのSMTP認証(SASL)
iPhone4買いました。Kindleも予約注文しました。
このへんの話もそのうち書くでしょう。^^
さて Postfix について。
Linuxサーバ自体から出るシステムのメールや、その他PCから自動で発信するメールのSMTPサーバとしてPostfixを使用しています。ただ、ドメインは所持しているもののDDNSによる運用のためか、Postfixを単純なSMTPサーバとして運用しようとしても誰もリレーしてくれません。
そこでISPのSMTPサーバをリレーホストとしていますが、最近このサーバが送信に認証を求めてくるようになりました。
そこでSASLという仕組み(?)を利用して認証することにしました。
先ずPostfixの設定を変更します。
/etc/postfix# vi main.cf
とし、
relayhost = [SMTPサーバ名]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
を追加(または変更)します。
次に認証情報のファイルを作ります。
/etc/postfix# vi sasl_passwd
とし、
[SMTPサーバ名]:587 アカウント:パスワード
と一行記述します。
最後に認証情報のファイルをdb化し、Postfixを再起動します。
/etc/postfix# postmap ./sasl_passwd
/etc/postfix# /etc/init.d/postfix restart
これで無事にメール送信ができるようになりました。
さて、実際には少し手間取りました。
認証情報をdb化しようとしたところでpostmapが使用できないというものです。
(Ubuntu9.04からアップグレードした9.10に於いて)
mailをインストールしろといわれるので試みたところPostfixが削除され、再インストールしてもうまく動かず、いろいろいじったり再起動したりしているうちにちゃんと動くようになりました。
実際にどう復旧したかは今となってはよくわかりません。
一方、Ubuntu10.04をクリーンインストールしたサーバの方では同様の問題は起こりませんでした。
試みる場合、少し注意した方がいいかもしれませんね。