自宅サーバーから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に記載
1 | relayhost = [smtp.xxxx.ocn.ne.jp] |
ポイントはポート番号は25であって587ではない。ここの一連のやりとりが役に立った。OCNのページを見ると587を使わなければいけないように見えるんだけど…
■SASLの設定
以下の内容を/etc/postfix/main.cfに追記
1 2 3 4 | 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のメールアカウント)。
1 | [smtp.xxxx.ocn.ne.jp] userid:passwd |
次に、以下のコマンドを実行。
1 | # postmap /etc/postfix/sasl_passwd |
念のため以下のパーミッションにしておく
1 2 | -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を編集するという情報もあったけど、それも必要なし。
結構試行錯誤したが、終わって振り返ってみると結構簡単だった。