■Postfixで携帯宛のメール送信が非常に遅延したり送れないことがある。


[現 象]

Postfixでタイトルどおりで、携帯宛のメール送信が、非常に遅延したり送信できないことがある。

[原 因]

ORDBのデータベースやIPアドレス等で拒否しているらしい。(「らしい」というのは、事実確認ができていないため)

[対 処]

対処方法としては、携帯宛のメールは契約プロバイダのSMTPサーバ経由で送る方法がある。但し、全てのケースで対処できるわけではなく、契約プロバイダのSMTPサーバがリレー中継(自社アカウント以外、つまり自分の独自ドメインのアカウントからのメール送信の中継)してくれることが条件となる。

◆基本的な設定


  1. 設定は、/etc/postfix/main.cf に下記設定(transport_maps)を追加することで行う (青字は削除、赤字は追加、緑字は変更したものです。)

    # 配送条件をtransportファイルで指定
    transport_maps = hash:/etc/postfix/transport


  2. /etc/postfix/transport に、下記のように 携帯電話会社のドメインと[  ] 内に契約プロバイダの SMTP サーバを記述したものを半角空白区切りで、1ドメイン1行で列挙する。下記はDocomoの例。

    docomo.ne.jp    :[mail.hoge.ne.jp]
    .docomo.ne.jp   :[mail.hoge.ne.jp]


    この設定でうまく配送されない場合は、下記のように smtp を追記する。おやじは経験していないが、master.cf の先頭に smtp が記述されていれば、デフォルトでsmtp 配送になるはずであるがうまくいかないことがあるため。

    docomo.ne.jp    smtp:mail.hoge.ne.jp
    .docomo.ne.jp   smtp:mail.hoge.ne.jp


  3. postmap コマンドで transport.db を作成する。設定が完了したらpostfixをreloadしておく。

    # postmap /etc/postfix/transport
    # /etc/init.d/postfix reload

以上で、/etc/postfix/transport で列挙したドメイン宛のメールは契約プロバイダのSMTPサーバに配送されるので、遅延が解消されるはずである。
但し、プロバイダによっては認証が必要なケースがあるので、その場合は別途対策が必要となるので、こちらを参照してプロバイダのSMTPサーバの認証対策をすること。



Top Pageへ     戻る