自宅サーバーからOCN経由でメール送信
■やりたいこと=送信のみ
自宅のLinuxサーバーからメール送信させたいけど、最近はプロバイダで外向けの25番ポートへのアクセスを閉じていることが殆ど(OP25B=Outbound Port 25 Blocking)。ということでその回避方法。
外部から自宅サーバーへ送られてきたメールの受信とかは必要なし。
■環境
- CentOS 5.4
- postfix 2.3.3 (CentOS標準のもの)
- プロバイダはOCN
■relayhostの設定
まずは全てのSMTPをOCNのSMTPサーバー経由にする。具体的には以下の記述を/etc/postfix/main.cfに記載
relayhost = [smtp.xxxx.ocn.ne.jp]
ポイントはポート番号は25であって587ではない。ここの一連のやりとりが役に立った。OCNのページを見ると587を使わなければいけないように見えるんだけど…
■SASLの設定
以下の内容を/etc/postfix/main.cfに追記
smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = LOGIN,PLAIN,CRAM-MD5
このページを参考にした。
■SASLパスワードの設定
SASLで使うパスワードをpostfixに教えてあげなければならない。/etc/postfix/sasl_passwdというファイルを作成し、以下の内容で保存(userid, passwdは自分のOCNのメールアカウント)。
[smtp.xxxx.ocn.ne.jp] userid:passwd
次に、以下のコマンドを実行。
# postmap /etc/postfix/sasl_passwd
念のため以下のパーミッションにしておく
-rw------- 1 root root 86 5月 9 21:44 sasl_passwd -rw------- 1 root root 12288 5月 9 21:45 sasl_passwd.db
■postfixを再起動
これで設定が有効になる。
■やらなくて良かったこと
postfixにパッチを当てる必要があったというページがいくつも見付かったけど、とりあえず必要ない。
master.cfを編集するという情報もあったけど、それも必要なし。
結構試行錯誤したが、終わって振り返ってみると結構簡単だった。