Во время почтовых рассылок иногда можно столкнуться с ситуацией, когда почтовые сервисы начнут накладывать санкции на ваши отправки. Это могут быть как временные лимиты, так и более серьёзные ограничения до 72 часов. В частности, при массовой рассылке на почтовые ящики вида @yahoo.com, @yahoo.de и так далее — чаще всего мы сможете встретить в mail логах сообщения вида:

host mx-aol.mail.gm0.yahoodns.net[67.195.228.86] said: 421 4.7.0 [TSS04] Messages from x.x.x.x temporarily deferred due to user complaints — 4.16.55.1; see https://help.yahoo.com/kb/postmaster/SLN3434.html (in reply to MAIL FROM command)

Так же отправки будут сопровождаться сообщения о том что соединение было потеряно:

delivery temporarily suspended: lost connection with mta7.am0.yahoodns.net[67.195.204.77] while sending RCPT TO

Всё это говорит нам о том, что Yahoo решил немного охладить нам postfix. По информации от самого Yahoo — в ближайшие 4 часа после получения подобного сообщения — их почтовые сервера не будут принимать наши письма. В этот момент обычно пора задуматься о выставлении лимитов отправок в сторону Yahoo. Либо у нас есть выбор проигнорировать эти санкции, и тогда с большей долей вероятности — вы получите бан уже 72 часа.

Итак, если вы решили идти по первому пути, то приступим к настройке лимитов:

создаём файл transport в папке postfix (если такого файла ещё нет):

nano  /etc/postfix/transport 

добавляем в него следующее содержимое:

#Yahoo zones
yahoo.ae yahoo:
yahoo.at yahoo:
yahoo.be yahoo:
yahoo.ca yahoo:
yahoo.ch yahoo:
yahoo.cn yahoo:
yahoo.co.il yahoo:
yahoo.co.in yahoo:
yahoo.co.jp yahoo:
yahoo.co.kr yahoo:
yahoo.co.nz yahoo:
yahoo.co.th yahoo:
yahoo.co.uk yahoo:
yahoo.co.za yahoo:
yahoo.com.ar yahoo:
yahoo.com yahoo:
yahoo.com.au yahoo:
yahoo.com.br yahoo:
yahoo.com.cn yahoo:
yahoo.com.hk yahoo:
yahoo.com.mx yahoo:
yahoo.com.my yahoo:
yahoo.com.ph yahoo:
yahoo.com.sg yahoo:
yahoo.com.tr yahoo:
yahoo.com.tw yahoo:
yahoo.com.vn yahoo:
yahoo.cz yahoo:
yahoo.de yahoo:
yahoo.dk yahoo:
yahoo.en yahoo:
yahoo.es yahoo:
yahoo.fi yahoo:
yahoo.fr yahoo:
yahoo.gr yahoo:
yahoo.ie yahoo:
yahoo.it yahoo:
yahoo.nl yahoo:
yahoo.no yahoo:
yahoo.pl yahoo:
yahoo.pt yahoo:
yahoo.ro yahoo:
yahoo.ru yahoo:
yahoo.se yahoo:
yahoo.com.au yahoo:
yahoo.com.br yahoo:
yahoo.com.cn yahoo:
yahoo.com.hk yahoo:
yahoo.com.mx yahoo:
yahoo.com.my yahoo:
yahoo.com.ph yahoo:
yahoo.com.sg yahoo:
yahoo.com.tr yahoo:
yahoo.com.tw yahoo:
yahoo.com.vn yahoo:
yahoo.cz yahoo:
yahoo.de yahoo:
yahoo.dk yahoo:
yahoo.en yahoo:
yahoo.es yahoo:
yahoo.fi yahoo:
yahoo.fr yahoo:
yahoo.gr yahoo:
yahoo.ie yahoo:
yahoo.it yahoo:
yahoo.nl yahoo:
yahoo.no yahoo:
yahoo.pl yahoo:
yahoo.pt yahoo:
yahoo.ro yahoo:
yahoo.ru yahoo:
yahoo.se yahoo:

сохранив файл, нам необходимо сгенерировать файл transport.db, для этого выполним команду:

postmap /etc/postfix/transport

теперь создадим файл с регулярным выражением, которое будет фильтровать почтовые ящики, которые относятся к сервису Yahoo:

nano /etc/postfix/transport.regexp

добавим следующее содержимое:

#yahoo emails
/yahoo(.[a-z]{2,3}){1,2}$/ yahoo:

Теперь отредактируем файл master.cf, выполнив команду:

nano /etc/postfix/master.cf

добавим в него следующее содержимое:

yahoo     unix  -       -       n       -       -       smtp
          -o syslog_name=postfix-yahoo

Далее редактируем main.cf, для этого используем команду:

 nano /etc/postfix/main.cf

в самый конец добавим содержимое:

transport_maps = hash:/etc/postfix/transport, regexp:/etc/postfix/transport.regexp
yahoo_initial_destination_concurrency = 1
yahoo_destination_concurrency_limit = 4
yahoo_destination_recipient_limit = 2
yahoo_destination_rate_delay = 1s

сохраняем файл и перезапускаем postfix командой:

 service postfix restart

Всё готово, теперь наш почтовый сервер будет отправлять не более 4 сообщений в рамках одного коннекта к Yahoo. В целом скорость отправки конкретно на ящики Yahoo снизится, но с большей долей вероятности мы перестанем получать блокировки, тем самым обеспечим доставку писем в кратчайшее время и точно в срок.

Categories: CentosDebian

0 Comments

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *