Postfixメール送信制限 その2

項番 機能
1 主要3キャリアへの独自?ルールにより送信(セッション数、同時メール送信数の制限)
2 配信時刻制限(docomo.co.jp宛のメールは深夜帯を避けるなど)
3 エラーメール処理(バウンスメールをカウントして、設定した回数を越えたら配信しない)
4 絵文字メール送信
5 単位時間あたりのメール送信制限(例 1時間に6万通を上限にする等)
6 複数アドレスによるメール送信(キャリア宛のメール送信の高速化)

今日は、2について記述する。2はどこで活躍するか?なのですが、業務の現場では携帯メールを深夜帯に飛ばしたくないみたいな要望があるらしいのです(受信者側のマナーモードで対応しろといった理屈は、通用しないらしい)ということで、調べてみるとdefer_transport(master.cfで指定したサービス名を記述すると、メール配信を保留状態にする(メールキューにに滞留する))といった状態にすることが出来ます。これと、cron等と組み合わせて配信時刻制限をすることが出来ます。例として、softbank,au,docomoのサービスを登録して、配信時刻制限をするといったことを設定してみます。

1. master.cfにサービスを登録します
smtp_destination_concurrency_limitとsmtp_destination_recipient_limitは、上記表の1に関連しますので、次の機会でお話します

## 配信制限用
smtp-docomo unix - - n - - smtp
-o smtp_destination_concurrency_limit=1
-o smtp_destination_recipient_limit=1
smtp-softbank unix - - n - - smtp
-o smtp_destination_concurrency_limit=1
-o smtp_destination_recipient_limit=1
smtp-ezweb unix - - n - - smtp
-o smtp_destination_concurrency_limit=1
-o smtp_destination_recipient_limit=1

2. transportマップにそれぞれのドメインを定義します
デフォルトローカル向きですので、必ずmailgatewayの設定は実施しましょう。

## 配信時刻制限をしたいドメイン ##
docomo.ne.jp smtp-docomo:[mailgateway]
ezweb.ne.jp smtp-ezweb:[mailgateway]
softbank.ne.jp smtp-softbank:[mailgateway]

3. main.cfにdefer_transportを設定します
defer_transports = smtp-docomo smtp-ezweb smtp-softbank
4. 設定反映

#postmap /etc/postfix/transport
#postfix reload

これで、defer_transortsに各サービスタイプが記述されているときはメール配信はされないので、夜間は 3のような記述をし、規程した営業時刻は"postconf -e defer_transports="を実行、メールキューの吐きだしをすれば配信時刻の制限は可能となります。