
送信が集中しやすいキャリア宛の流量を制限する記事です、一気に1コネクションで送信すると嫌がられてしまいます。
Docomoの例
>3.1通のメールで可能な同報数の上限にご注意ください
同時送信が可能な宛先数は1SMTPセッションあたり100宛先までとなります。101以上の宛先数で送信した場合はそのセッションのメールに関しては受信せずにエラーコード554:Transaction failedを応答し、そのセッションを切断させていただいております。エラーになる前の宛先に関しても送信されませんので、ご注意ください。
対処策
メールの同報送信をご利用の際には、同報可能数の上限(100宛先/1メール)を超えないようにお願いいたします。
>4.局所的に大量のメールを送信される際のお願い
携帯電話のメールサービスは、モビリティ性とリアルタイム性を実現するため、PCでのメールサービスとは異なり、メールを受信後すぐに、お客様の携帯電話に配送(Push)する仕組みを取入れています。また、お客様がどこにいてもメール配信ができるよう、無線を用いて送信しております。しかしながら、無線リソースは有限であることから、局所的に大量のメールが集中したり、そのエリアでの通信量が急激に増加した場合には、無線リソースを超過し、携帯電話へのメール配送が失敗する場合があります。
対処策
同報メールを大量に送信する際は、少ない通数ずつ、回数や配送先地域を分けて送信するなど、輻輳を避ける送信方法による送信をお願いいたします。
このようにキャリアにはポリシーがあるのですね!
>3.1通のメールで可能な同報数の上限にご注意ください
# vi /etc/postfix/main.cf ※最終行に追加 # Gmail, Docomo, au 流量制限 # @/etc/postfix/master.cf 最終行に記述 transport_maps = hash:/etc/postfix/transport ## その他宛メール 100通/60秒に制限 default_process_limit = 5000 anvil_rate_time_unit=60s smtpd_client_message_rate_limit=100
master.cf
# vi /etc/postfix/master.cf
※最終行に追加
# Gmail
gmail-smtp unix - - n - 1 smtp
-o syslog_name=postfix/gmail
-o smtp_destination_concurrency_limit=1
-o smtp_destination_recipient_limit=1
-o anvil_rate_time_unit=60s
-o smtpd_client_message_rate_limit=100
# Docomo
docomo-smtp unix - - n - 1 smtp
-o smtp_destination_concurrency_limit=1
-o smtp_destination_recipient_limit=1
-o anvil_rate_time_unit=60s
-o smtpd_client_message_rate_limit=100
# au
au-smtp unix - - n - 1 smtp
-o smtp_destination_concurrency_limit=1
-o smtp_destination_recipient_limit=1
-o anvil_rate_time_unit=60s
-o smtpd_client_message_rate_limit=100
# vi /etc/postfix/transport ※最終行に追加 gmail.com gmail-smtp: docomo.ne.jp docomo-smtp: ezweb.ne.jp au-smtp:
他のメールアドレスやキャリアも設定可能です。
ハッシュ化を行います
# postmap /etc/postfix/transport
反映を行います
postfix check systemctl restart postfix systemctl enable postfix systemctl status postfix
Gmailなど設定したキャリアに500通同時に送信するなどすると、少しずつ送信が行われることがわかります。
お疲れ様です。
