Назад | Перейти на главную страницу

Постфикс `` слишком много ошибок '' после множества команд RSET

У меня есть клиент, который жалуется, что их электронные письма со счетами не отправляются правильно. Насколько мне известно, их программное обеспечение для выставления счетов предназначено для прямой отправки электронных писем.

Глядя на захват пакета сеанса, клиент кажется плохо разработанным и выполняет следующий странный процесс:

-> MAIL FROM: <sender>
<- OK
-> RCPT TO: <customer>
<- OK
-> RSET

Он делает это для каждого отдельного электронного письма, затем снова обрабатывается с самого начала, на этот раз отправляя полный MAIL/RCPT/DATA набор команд.

-> MAIL FROM: <sender>
<- OK
-> RCPT TO: <customer>
<- OK
-> DATA
<- 354 OK..
-> (the email)
-> .
<- OK Queued
-> MAIL FROM: <sender>
... etc ...

Что меня интересует, так это то, что это работает для небольшого числа получателей. Однако причина, по которой так много их писем пропадает, заключается в том, что если список получателей слишком велик, Postfix, похоже, завершает соединение во время этого первого MAIL/RCPT/RSET сцена для too many errors. Кажется, это происходит примерно после 100 получателей.

RSET
250 2.0.0 Ok
MAIL FROM: <sender>
250 2.1.0 Ok
RCPT TO: <customer>
250 2.1.5 Ok
RSET
250 2.0.0 Ok
MAIL FROM: <sender>
421 4.7.0 isp-smtp-server Error: too many errors
RSET
RSET
QUIT

Теперь я планирую ответить и сказать им, что проблема в программном обеспечении. Не знаю, есть ли у них какой-то канал, чтобы исправить это.

(РЕДАКТИРОВАТЬ: по-видимому, сказали, что это идет через Outlook, что подтолкнуло меня к рассмотрению других систем, которые могут искажать это соединение, например AV - https://www.symantec.com/connect/forums/rset-command-being-sent-after-authentication-smtp-server-successful)

Дело в том, что он вообще не сообщает об ошибках во время сеанса, поэтому клиент не знает, что он накапливает ошибки. Это также означает, что я не на 100% уверен, что это за ошибки на самом деле (отправка RSET без завершения сообщения?)

Журналы не показывают ничего, кроме обычного соединения, за которым следует too many errors, вот почему мне пришлось прибегнуть к захвату пакетов, чтобы узнать, что происходит.

Кто-нибудь знает, какую конкретную ошибку считает Postfix, и какой предел он использует, чтобы решить, когда их слишком много? Мой предел мягких ошибок установлен по умолчанию 10 что намного меньше, чем количество сбросов, выполняемых клиентом перед отключением. Первоначально я думал, что, возможно, некоторые получатели были отклонены, и что количество отклоненных адресов в конечном итоге достигло предела ошибок, но я не вижу никаких отклонений в захвате пакета, и он заканчивается MAIL команда, а не RCPT.

Я до сих пор не уверен, почему этот клиент Outlook 2010 отправляет команды таким образом, но мне удалось выяснить ответ на вопрос, почему Postfix внезапно решает сдаться.

RSET считается нежелательной командой и по умолчанию smtpd_junk_command_limit равно 100. Как только этот предел будет достигнут, hard_error счетчик начинает расти. Когда это достигнет 20 (по умолчанию), всего 120, сообщает Postfix. too many errors.