1. В настройке по умолчанию, если указанный явно relay отвергает письма, то они выкидываются даже без сообщения отправителю. 2. Если relay не указан явно, и postfix стучится напрямую, и у него не принимают письмо, то он так и пытается отправить, ничего никому не говоря. Предлагается внести настройки, чтобы а) по п. 1 не выкидывать сообщения б) в обоих случаях сообщать администратору. А также подсказать мне, как удалить сообщения, застрявшие в deffered :)
1. Сходу неочевидно, надо подумать. 2. Не понял проблемы, просьба переформулировать. 3. См. postsuper(1).
(In reply to comment #1) > 1. Сходу неочевидно, надо подумать. Могу привести лог. Мы с kirill@ потеряли несколько десятков писем, пока заметили, что relay нас отшивает. > 2. Не понял проблемы, просьба переформулировать. Конкретный пример: наш сервер не имеет обратной зоны. Пытаем отправить письмо, и получаем: postfix/smtp[2820]: 80AB956CBE: to=<isp-list@altlinux.org.ua>, relay=relay.altlinux.org.ua[212.40.36.150], delay=235367, status=deferred (host relay.altlinux.org.ua[212.40.36.150] said: 450 Client host rejected: cannot find your hostname, [82.179.107.110] (in reply to RCPT TO command)) При этом письмо не выбрасывается, но и сообщений никому не приходит. > 3. См. postsuper(1). Огромное спасибо!
> > 2. Не понял проблемы, просьба переформулировать. > Конкретный пример: наш сервер не имеет обратной зоны. Пытаем отправить письмо, > и получаем: > postfix/smtp[2820]: 80AB956CBE: to=<isp-list@altlinux.org.ua>, > relay=relay.altlinux.org.ua[212.40.36.150], delay=235367, status=deferred > (host relay.altlinux.org.ua[212.40.36.150] said: 450 Client host rejected: > cannot find your hostname, [82.179.107.110] (in reply to RCPT TO command)) > > При этом письмо не выбрасывается, но и сообщений никому не приходит. Это регулируется параметром delay_warning_time
> 1. В настройке по умолчанию, если указанный явно relay > отвергает письма, то они выкидываются даже без сообщения отправителю. Вы точно уверены? Если письмо отвергнуто релеем с кодом 550 (перманентная ошибка доставки), таки отправитель получает bounce.
(In reply to comment #3) > Это регулируется параметром delay_warning_time Вы уверены что его не нужно поставить в значение 4h ? > Вы точно уверены? Если письмо отвергнуто релеем с кодом 550 (перманентная ошибка доставки), таки отправитель получает bounce. Наверное дело в том, что отправитель имеет другой домен (к примеру человек пишет, указывая во From: @altlinux.ru, соответственно _ему_ bounce не доставить.
> > Это регулируется параметром delay_warning_time > Вы уверены что его не нужно поставить в значение 4h ? Лично я бы предпочёл, чтобы этот параметр фигурировал в конфиге, но в закомментированном виде с кратким комментарием :) Например в дебиане: # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h > Наверное дело в том, что отправитель имеет другой домен (к примеру человек > пишет, указывая во From: @altlinux.ru, соответственно _ему_ bounce не > доставить. Да, в логе должно быть что-то вроде undeliverable notification discarded.
Логи убил logrotate, но неоднократно было, что мой postfix получал на том же smtp.mail.ru 55x и пытался отправить мне как отправителю (на xxxxx@mail.ru) отлуп, соответственно, все через тот же smtp.mail.ru. Опять получал 55х, отправлять отлуп было уже некому, и о потерявшемся письме я узнавал из логов. Руками.
> отлуп, соответственно, все через тот же smtp.mail.ru. Опять получал 55х, > отправлять отлуп было уже некому, и о потерявшемся письме я узнавал из логов. С помощью параметра notify_classes (bounce/2bounce) можно включить уведомление постмастера о недоставленных сообщениях.
Короче говоря, что вы хотите от пакета postfix?
(In reply to comment #9) > Короче говоря, что вы хотите от пакета postfix? 1. С помощью параметра notify_classes (bounce/2bounce) включить уведомление постмастера о недоставленных сообщениях. 2. Добавить # Generate "delayed mail" warnings delay_warning_time = 4h 3. Добавить в закомментированном виде пределы на размер ящика и писем. #mailbox_size_limit = 351200000 #message_size_limit = 20000000
Между прочим, эпизод с выкидыванием писем в случае если указанный явно relay отвергает письма у меня пока не воспроизвёлся.
У меня уже нет отвергающего сервера, я тоже проверить не могу. Давайте забудем про это.
Вот, поймал без проблем. Письмо выкинуто без вопросов. Если хотите, можете тоже попробовать с mail.unnet.ru в качестве relay. Feb 9 20:54:00 server postfix/smtp[17929]: 63BD0467C3: to=<lav@etersoft.ru>, relay=mail.unnet.ru[87.249.46.180], del ay=0, status=bounced (host mail.unnet.ru[87.249.46.180] said: 553 sorry, that domain isn't in my list of allowed rcpt hosts (#5.7.1) (in reply to RCPT TO command)) Feb 9 20:54:00 server postfix/qmgr[8503]: 63BD0467C3: removed
Created attachment 1381 [details] postfix.log Попробовал, не воспроизвелось: bounce был мне отправлен.
(In reply to comment #14) > Created an attachment (id=1381) [edit] > postfix.log > > Попробовал, не воспроизвелось: bounce был мне отправлен. Эксперимент проводился на postfix с конфигами по умолчанию?
Created attachment 1395 [details] postfix log Воспроизводится стабильно, bounce отправляется не c relay=local, а с relay={$relayhost}. В конфиге main.cf изменялась единственная строка -- relayhost.
2kirill: можно немного больше консекста привести (начиная с postfix/pickup)? Мне кажется, что приведённый лог подтверждает мою гипотезу, что вы неправильно трактуете то, что postfix пишет в лог. Насколько я понимаю, у вас происходит следующее: когда relay заворачивает письмо, postfix отправляет bounce, который relay тоже заворачивает. Ну а bounce на bounce уже никто, конечно, отправлять не будет. Если моя гипотеза верна, то у вас у всех local misconfiguration.
(In reply to comment #17) > Насколько я понимаю, у вас происходит следующее: когда relay заворачивает > письмо, postfix отправляет bounce, который relay тоже заворачивает. Ну а bounce > на bounce уже никто, конечно, отправлять не будет. Ровно это я описывал в #7 > Если моя гипотеза верна, то у вас у всех local misconfiguration. В чем оно заключается? И почему оно такое по умолчанию?
(In reply to comment #17) > Если моя гипотеза верна, то у вас у всех local misconfiguration. +1. А чтобы народ больше не спотыкался о такое, предлагаю изменить значение по умолчанию для параметра notify_classes. Сейчас оно $ postconf -d notify_classes notify_classes = resource, software , т.о. предлагаю добавить туда 2bounce: 2bounce Send undeliverable bounced mail to the postmaster. The notifica- tion is sent to the address specified with the 2bounce_notice_recipient configuration parameter (default: post- master).
2wrar: local misconfiguration заключается в том, что relay'ить отлупы через тот же relay не очень разумно. 2vvk: upstream не сделал этого, вероятно, потому что недоставленный bounce ещё не признак ошибки; наиболее часто bounce не удаётся доставить, если это был bounce на письмо, отправленное с несуществующего адреса (например, спам). Так что я не уверен, что от включения по умолчанию 2bounce будет больше пользы чем вреда.
2ldv: ну как сказать... если MTA настраивается администратором для работы в продакшен, он это по-любому должен заметить :) Домашний же юзер не обязан знать всех тонкостей работы MTA :) А коль у нас постфикс является дефолтным mta, может стоит таки немножко изменить умолчание?
(In reply to comment #20) > 2wrar: local misconfiguration заключается в том, что relay'ить отлупы через тот > же relay не очень разумно. Я не совсем понимаю, почему мою (и не только) почти дефолтную настройку postfix обзывают local misconfiguration, как будто я сам себе так сделал, чтобы отлупы не ходили.
2wrar: Почти не считается. Если relayhost не готов принимать все ваши письма, то надо позаботиться о более подходящем транспорте.
(In reply to comment #10) > (In reply to comment #9) > > Короче говоря, что вы хотите от пакета postfix? > > 1. С помощью параметра notify_classes (bounce/2bounce) включить уведомление > постмастера о недоставленных сообщениях. Я не хочу этого делать по той причине, которую уже озвучивал. > 2. Добавить > # Generate "delayed mail" warnings > delay_warning_time = 4h Я не буду этого добавлять, поскольку я не меняю значения по умолчанию с тех, которые мне удобны, на те, которые мне неудобны. > 3. Добавить в закомментированном виде пределы на размер ящика и писем. > #mailbox_size_limit = 351200000 > #message_size_limit = 20000000 Я не хочу засорять рабочий main.cf комментариями. В postfix-2.3.7-alt1 я вообще взял пример с Debian и переименовал прежний main.cf в main.cf.dist, а на место main.cf положил файл совсем небольшого размера.
(In reply to comment #24) > > 3. Добавить в закомментированном виде пределы на размер ящика и писем. > > #mailbox_size_limit = 351200000 > > #message_size_limit = 20000000 > Я не хочу засорять рабочий main.cf комментариями. Не, вот по этому пункту не согласен. Неоднократно проверено, что эти два важных параметра вовсе не очевидны в нахождении по документации (на разных людях за несколько лет). Дим, если не трудно -- эти добавь. > В postfix-2.3.7-alt1 я вообще взял пример с Debian и переименовал прежний > main.cf в main.cf.dist, а на место main.cf положил файл совсем небольшого размера. Это хорошо, но тем более добавляет смысла важные вещи в .dist упомянуть.
Разыскивается то ли консиквенс, то ли консенсус.
Текущий main.cf мне нравится. Если кто-то хочет видеть расширенный main.cf, его можно класть рядом с основным в качестве примера. Или в /usr/share/doc, где оно более уместно.
Я могу конечно к каждому пакету соорудить свои умолчания рядом, но какой в этом смысл обществу? Есть профессионалы, которые и в пустой main.cf допишут нужное, а есть люди, которым всего лишь в установленный по умолчанию и работающий postfix нужно внести исправление по лимиту. А по поводу текущего main.cf - так ведь postfix из коробки совершенно не приспособлен к реальной жизни, в реальном почтовом мире. Поставь его по умолчанию на сервер, и 5 тысяч писем спама в день будет пропускаться на ура :) Впрочем, я отстраняюсь.
Хм... control? или глупость сморозил?
Я в очередной раз потерял нить дискуссии. Патчи на main.cf.dist приветствуются.
В общем в баге слишком много обсуждений, решения не видно, чёткой проблемы тоже. Для меня вопрос уже не актуален. Закрываю.