return_fail_output + local delivery failed

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

return_fail_output + local delivery failed

Непрочитанное сообщение Al » 2011-02-12 19:09:29

Собственно, сабж. Был старенький экзим и первый довкот+квоты. Экзим обновил до последнего довкот до второго, после чего в warn_message перестали писаться причины локальной недостави по причине квоты. Вместо причины - local delivery failed и все. При том если в транспорте поменять return_fail_output на return_output, то шлется не warn_message по истечению некоторого времени в очереди, а сразу рекошет. Где причина уже присутствует. При этом всем если запустить деливер руками, то на stderr ошибка выводится, и в логах экзима она присутствует как ответ деливера.
Что-то поменяли или косяк?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: return_fail_output + local delivery failed

Непрочитанное сообщение Alex Keda » 2011-02-13 13:28:11

логи чтоле покажите..
не говоря уже о конфигурации логгирования
Убей их всех! Бог потом рассортирует...

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: return_fail_output + local delivery failed

Непрочитанное сообщение Al » 2011-02-14 8:18:38

Да, извиняюсь. Просто под рукой не было конфигов уже.
Вот транспорт

Код: Выделить всё

dovecot_delivery:
  driver = pipe
  command = /usr/local/libexec/dovecot/dovecot-lda -e -d $local_part@$domain
  message_prefix =
  temp_errors = 75
  message_suffix =
  delivery_date_add
  envelope_to_add
  return_path_add
  log_output
  return_fail_output
#  return_output
  user = mailnull
В доках http://www.exim.org/exim-html-current/d ... /ch29.html
  • If the command exits with a non-zero return code, the delivery is deemed to have failed, unless either the ignore_status option is set (in which case the return code is treated as zero), or the return code is one of those listed in the temp_errors option, which are interpreted as meaning “try again later”. In this case, delivery is deferred. Details of a permanent failure are logged, but are not included in the bounce message, which merely contains “local delivery failed”.

    The return_output option can affect the result of a pipe delivery. If it is set and the command produces any output on its standard output or standard error streams, the command is considered to have failed, even if it gave a zero return code or if ignore_status is set. The output from the command is included as part of the bounce message. The return_fail_output option is similar, except that output is returned only when the command exits with a failure return code, that is, a value other than zero or a code that matches temp_errors.

    return_fail_output Use: pipe Type: boolean Default: false
    If this option is true, and the command produced any output and ended with a return code other than zero or one of the codes listed in temp_errors (that is, the delivery failed), the output is returned in the bounce message. However, if the message has a null sender (that is, it is itself a bounce message), output from the command is discarded. This option and return_output are mutually exclusive. Only one of them may be set.
Правда, из текста явно, что причина включается в bounce message, а вот насчет warn message ни слова. Но раньше распространялось на оба, а вот сейчас...

При том, если раскоментить return_output, то сообщение удаляется из очереди и шлется bounce message с причиной недоставки - превышение квоты. А если return_fail_output, то шлется warn message, сообщение остается в очереди но в причинах - local delivery failed без объяснения причин.
При этом в логах экзима
2011-02-13 23:59:39 1Poj2h-000Puv-Gs <sav@mydomain.ru>: dovecot_delivery transport output: Quota for this mailbox exceeded
2011-02-13 23:59:39 1Poj2h-000Puv-Gs ** sav@mydomain.ru (sav@russvet.ru) <root@mydomain.ru> R=dovecot_user T=dovecot_delivery: Child process of dovecot_delivery transport returned 75 (could mean temporary error) from command: /usr/local/libexec/dovecot/dovecot-lda
Т.е. довкот отрабатывает более-менее корректно.

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: return_fail_output + local delivery failed

Непрочитанное сообщение Al » 2011-02-16 8:24:52

Никто ничо не понял или решения нет?:)
Есть хоть у кого похожая схема со старым довкотом или экзимом, что б проверить?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: return_fail_output + local delivery failed

Непрочитанное сообщение Alex Keda » 2011-02-19 9:55:34

деливер дебажте
он напишет в чём причина
Убей их всех! Бог потом рассортирует...

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: return_fail_output + local delivery failed

Непрочитанное сообщение Al » 2011-02-19 14:36:19

Похоже, не сильно понятно описал проблему. Тест.
Квота для ящика test@mydomain.ru заполнена. Проверяем (пишу руками по пямяти, поэтому возможны некоторые неточности)

Код: Выделить всё

[list]#cat big_file | deliver -e -d test@mydomain.ru
Quota for this mailbox exceeded
#[/list]
Теперь отправляем письмо снаружи. И получается 2 варианта.
1. В транспорте return_output. При попытке доставки через довкот превышение квоты воспринимается как ?постоянная? ошибка, письмо из очереди удаляется, шлется рекошет с текстом "Quota for this mailbox exceeded". Тут все нормально.
2. В транспорте return_fail_output. При попытке доставки через довкот превышение квоты воспринимается как ?временная? ошибка, письмо остается в очереди, но по истечении заданного промежутка времени шлется warn_message, где причина недоставки - "local delivery failed". При этом из текста с поста сверху, который из доков, return_fail_output как бы косвенно подразумевает включение причины в ответ. И в логах причина есть:

Код: Выделить всё

[list]2011-02-13 23:59:39 1Poj2h-000Puv-Gs <test@mydomain.ru>: dovecot_delivery transport output: Quota for this mailbox exceeded
2011-02-13 23:59:39 1Poj2h-000Puv-Gs ** test@mydomain.ru (test@russvet.ru) <test@mydomain.ru> R=dovecot_user T=dovecot_delivery: Child process of dovecot_delivery transport returned 75 (could mean temporary error) from command: /usr/local/libexec/dovecot/dovecot-lda[/list]
Вопрос, почему она не включается, а шлется просто "local delivery failed"? На первой версии довкота и чуть старее экзиме отсылал причину. Дело,думаю, не в бобине, т.е. не в довкоте, т.к. он и по логам экзима отвечает нормально, и в ручном режиме. В то же время, в чейнджлогах экзима не нашел каких-либо изменений касательно этой темы... Может, не так искал конечно...
как-то так..