Postfix による携帯へのメール送信
自宅でPostfixによりメールサーバを構築後、携帯にメール送信するためのメモ。
携帯へのメール送信時のログ内容
携帯にメール送ろうとすると以下のようなログ吐いて送信できない。
下記は「/var/log/maillog」の内容抜粋。
Apr 9 19:34:31 Sage postfix/smtp[10952]: 6EE9BE014E: to=<ケータイのアドレス>, relay=none, delay=52, status=deferred (connect to ケータイのメールサーバ: Connection timed out)
「relay=none」とリレーを拒否されている。
携帯のキャリアは迷惑メール対策として、
IPアドレスで SMTP のアクセスに制限がかけられている模様。
ためしにWindows 用の簡易smtpサーバである『Radish』を使って
携帯にメールを送信しようとしたら同様に見事に失敗。
スパムブロックのために、信頼できる ISP のsmtpサーバ以外からのメール送信を制限しているのだと想定。
対策
携帯にメールを送信するためは、自宅サーバの postfix を
SMTP サーバとして利用するのは無理。
そのため、携帯にメールを送信するときだけ
契約しているプロバイダ等の SMTP サーバを借りて
メールする必要がある。
方法は以下のとおり。
1.main.cf 内の次の行のコメントアウトをはずす(あるいは書き足す)。
transport_maps = hash:/etc/postfix/transport
2./etc/postfix/transport を変更
以下はドコモ・AU・ボーダフォン(ソフトバンク)・Willcom用のサンプルです。 (これでほとんどのキャリアをカバーできるはず)。
ezweb.ne.jp :[契約しているプロバイダの smtp サーバ]
.ezweb.ne.jp :[契約しているプロバイダの smtp サーバ]
docomo.ne.jp :[契約しているプロバイダの smtp サーバ]
.docomo.ne.jp :[契約しているプロバイダの smtp サーバ]
vodafone.ne.jp :[契約しているプロバイダの smtp サーバ]
.vodafone.ne.jp :[契約しているプロバイダの smtp サーバ]
softbank.ne.jp :[契約しているプロバイダの smtp サーバ]
.softbank.ne.jp :[契約しているプロバイダの smtp サーバ]
pdx.ne.jp :[契約しているプロバイダの smtp サーバ]
.pdx.ne.jp :[契約しているプロバイダの smtp サーバ]
3.transport.db の作成
# /usr/sbin/postmap /etc/postfix/transport
4.postfix の再起動。
# /etc/rc.d/init.d/postfix restart
(参考)メールキューの削除方法
携帯へのメール送信に失敗した場合、 Postfix のメールキューは消しておかないと5日間くらい保存され、 送信要求を出しまくって相手に迷惑をかけるので、 次のように消しておくことをお勧めします。
(注)この操作でメールキューは全部消えますので 必要なメールキューが存在する場合は使用しないでください。
# /usr/sbin/postsuper -d ALL