自宅のLAN内開発機から外部宛てにメール送信する為のPostfix最小設定。
調べるとあまりに基本的過ぎるためか ddns+自宅メールサーバーを運用する複雑な例が多い。
ここでは開発環境の為もっと単純な構成。受信する要件もなし。
Postfix(Vine4.2Linux) → YahooBB(ADSL8M) → YahooBB のSMTP → internet
YahooBB のSMTPサーバーは
ybbsmtp.mail.yahoo.co.jp
YahooBB のアカウントは
test
YahooBB のパスワードは
123456789
YahooBB メールアドレスは
test@ybb.ne.jp
YahooBBはSenderとFromが一致させなければならない。
YahooBB会員になっている Yahoo! JAPAN ID の登録メールアドレスを
mymail@domain.com
だとする。
Postfixのデフォルト設定でローカルユーザー間のメール送受信確認済み。この前提で準備開始
●「SMTP Auth」使うため下記をインストール。
[root@localhost root]# apt-get install cyrus-sasl-devel
→ http://updates.vinelinux.org 4.2/i386/updates cyrus-sasl 2.1.18-7vl4 [224kB]
→ http://updates.vinelinux.org 4.2/i386/updates cyrus-sasl-devel 2.1.18-7vl4 [564kB]
[root@localhost root]# apt-get install cyrus-sasl-md5
→ http://updates.vinelinux.org 4.2/i386/updates cyrus-sasl-md5 2.1.18-7vl4 [53.2kB]
[root@localhost root]# apt-get install cyrus-sasl-plain
→ http://updates.vinelinux.org 4.2/i386/updates cyrus-sasl-plain 2.1.18-7vl4 [22.9kB]
[root@localhost root]# apt-get install db4-devel
→ http://updates.vinelinux.org 4.2/i386/main db4-devel 4.2.52-6vl6 [1936kB]
●1行の認証情報テキストファイルを作成。
[root@localhost root]# vi /etc/postfix/ISPpassword
ybbsmtp.mail.yahoo.co.jp test:123456789
注意:YahooBBでは[]をつけると認証に失敗する
× [ybbsmtp.mail.yahoo.co.jp] test:123456789
●認証情報テキストファイルからデータベースファイルを作成。
[root@localhost root]# postmap /etc/postfix/ISPpassword
[root@localhost root]# ls -l /etc/postfix/ISPpassword.db (更新されていることを確認)
●必要最小限の /etc/postfix/main.cf 設定内容は
[root@localhost root]# diff /etc/postfix/main.cf.org /etc/postfix/main.cf
myhostname = domain.com
mydomain = domain.com
relayhost = [ybbsmtp.mail.yahoo.co.jp]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/ISPpassword
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = login
●/etc/postfix/main.cf 設定内容のチェック→何も表示されなければOK
[root@localhost root]# postfix check
●新たな/etc/postfix/main.cf で postfixを再起動しログを監視
[root@localhost root]# /etc/rc.d/init.d/postfix restart
[root@localhost root]# tail -f /var/log/maillog
●送信確認は、ユーザー mymail でログインするか
su - mymail
しておき
mail myfriend@gmail.com
で送信成功。続く・・・