LINUX.ORG.RU

Postfix отправляет почту через раз

 


0

1

Здравствуйте,

подскажите пожалуйста, почему postfix не отправляет примерно одно письмо из десяти, ошибки такие:

Cannot start TLS: handshake failure
conversation with host[ip] timed out while sending MAIL FROM
conversation with host[ip] timed out while performing the EHLO handshake

отправляются все письма через один промежуточный почтовый сервер.

До недавнего время все работало отлично, в один момент письма совсем перестали уходить.

Прописал что удалось найти на форумах: в /etc/sysctl.conf

net.ipv4.tcp_mtu_probing = 1 
net.ipv4.tcp_sack = 0

письма как и написал начали уходить 9 из 10, 1 не уходит, после postqueue -f и service postfix restart все письма уходят и через некоторое время все повторяется заново

Посмотрите, сколько коннектов (через ″netstat″) висит к удалённому серверу при проблемах с отправкой. Может ваш postfix просто перегружает удалённый сервер пытаясь параллельно отправить много писем.

mky ★★★★★ ()
Ответ на: комментарий от mky

Перезагружать приходится исходный postfix, а не удаленный, можно как-то ограничить количество одновременно отправляемых писем?

NevilDG ()
Ответ на: комментарий от NevilDG

Ограничить можно, только я пока не уверен, что проблема именно в этом. Может просто проблемы с сетью, там всякие чудеса могут быть.

Для ограничения в конфиге прописывается:

default_destination_concurrency_limit = 5
Вместо 5 можно ещё меньше, может поможет.

Или можно в файл ″master.cf″ ограничить общее число сервисов ″smtp″ (7-ой параметр в строке), раз у вас вся почта идёт через один сервер.

mky ★★★★★ ()
Ответ на: комментарий от mky

Отключил tls между основным и промежуточным, как я понял каждый раз сертификат высылается и это замедляет работу, ошибка

Cannot start TLS: handshake failure
убралась, а их было большинство.

Остались только:

conversation with timed out while receiving the initial server greeting
conversation with timed out while performing the EHLO handshake

Прописал, то что Вы посоветовали:

default_destination_concurrency_limit = 5

Ушли все ошибки. Посмотрим, что дальше будет! Спасибо Вам!

NevilDG ()
Ответ на: комментарий от NevilDG
conversation with timed out while receiving the initial server greeting

все-таки осталась, но это единичный случай, можете еще подсказать какой параметр отвечает за переотправку письма после ошибки? а то пока

postqueue -f
не выполнишь, оно висит

NevilDG ()
Ответ на: комментарий от NevilDG

Три параметра: queue_run_delay, minimal_backof_time, maximal_backoff_time. Первый это как часто письма из «отложенных» переносятся в «активные». Второй — минимальное время для повторной передачи, третий максимальное. По умолчанию письмо пытается отправиться несколько суток, после каждой неудачной попытки время ожидания следующей удваивается, пока не будет достигнуто maximal_backoff_time.

По умолчанию, повторная попытка, вроде, 1000 секунд, то есть примерно 15 минут. Вы столько ждёте, или раньше запускаете ″postqueue″?

P.S. Делать minimal_backof_time меньше queue_run_delay особого смысла нет, если уменьшать, то оба.

mky ★★★★★ ()
Ответ на: комментарий от mky

Спасибо! Проблема на глобальном уровне оказалась в частичной блокировке на удаленном сервере, но благодаря настройке письма все же не скапливались, а потихоньку уходили.

NevilDG ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.