Всем привет!
Есть сервер, на нем настроен Postfix, который принимает почту из внешки для виртуальных пользователей, а также позволяет виртуальным пользователям отправлять почту во внешку.
Нужно настроить postfix таким образом, чтобы при неудачной отправке (по любой из причин), на определенный мною ящик сразу же отправлялось письмо с причиной.
Читал в манах про DSN, как я понял, это делается при помощи bounce, но не совсем понял. Может у кого есть ценный опыт?
> Всем привет!
> Есть сервер, на нем настроен Postfix, который принимает почту из внешки для
> виртуальных пользователей, а также позволяет виртуальным пользователям отправлять почту
> во внешку.
> Нужно настроить postfix таким образом, чтобы при неудачной отправке (по любой из
> причин), на определенный мною ящик сразу же отправлялось письмо с причиной.
> Читал в манах про DSN, как я понял, это делается при помощи
> bounce, но не совсем понял. Может у кого есть ценный опыт?А что postfix "из коробки" работает по-другому?
>> Всем привет!
>> Есть сервер, на нем настроен Postfix, который принимает почту из внешки для
>> виртуальных пользователей, а также позволяет виртуальным пользователям отправлять почту
>> во внешку.
>> Нужно настроить postfix таким образом, чтобы при неудачной отправке (по любой из
>> причин), на определенный мною ящик сразу же отправлялось письмо с причиной.
>> Читал в манах про DSN, как я понял, это делается при помощи
>> bounce, но не совсем понял. Может у кого есть ценный опыт?
> А что postfix "из коробки" работает по-другому?ну сейчас он настроен таким образом, что приходят отлупы только об отказах при отправке, т.е. когда удаленный сервер не хочет принимать письмо и говорит "иди нах".
но есть ситуации когда письмо встает в очередь (deferred), вот эти вещи и интересуют меня! то есть как только письмо встало в очередь - об этом надо получить оповещение на заданный адрес.попробовал
delay_notice_recipient = myemail@localhost
error_notice_recipient = myemail@localhostшлю сообщение на сервер, где специально настроил 4.7.1 сообщение (попробуйте позже)
но на этот ящик ничего не падает
>[оверквотинг удален]
> при отправке, т.е. когда удаленный сервер не хочет принимать письмо и
> говорит "иди нах".
> но есть ситуации когда письмо встает в очередь (deferred), вот эти вещи
> и интересуют меня! то есть как только письмо встало в очередь
> - об этом надо получить оповещение на заданный адрес.
> попробовал
> delay_notice_recipient = myemail@localhost
> error_notice_recipient = myemail@localhost
> шлю сообщение на сервер, где специально настроил 4.7.1 сообщение (попробуйте позже)
> но на этот ящик ничего не падаеттак или иначе письмо всегда встает в очередь.
рано или поздно отправитель получит сообщение почему письмо не было доставлено
>[оверквотинг удален]
>> но есть ситуации когда письмо встает в очередь (deferred), вот эти вещи
>> и интересуют меня! то есть как только письмо встало в очередь
>> - об этом надо получить оповещение на заданный адрес.
>> попробовал
>> delay_notice_recipient = myemail@localhost
>> error_notice_recipient = myemail@localhost
>> шлю сообщение на сервер, где специально настроил 4.7.1 сообщение (попробуйте позже)
>> но на этот ящик ничего не падает
> так или иначе письмо всегда встает в очередь.
> рано или поздно отправитель получит сообщение почему письмо не было доставленоЯ не против, но мне необходимо получать оповещение о status=deferred на указанный мною ящик, тут просто важна каждая минута, бизнес дело такое
> мне необходимо получать оповещение о status=deferred на указанныйМожно написать скрипт на перле, который будет высматривать соотв сообщения в логе
>> мне необходимо получать оповещение о status=deferred на указанный
> Можно написать скрипт на перле, который будет высматривать соотв сообщения в логеЧто-то типа того
$log_obj = File::Tail->new(name => $log_to_watch, maxinterval => 1);while ($TERM_Signal == 0)
{
($nfound, $timeleft, @pending) = File::Tail::select(undef, undef, undef, $timeout, $log_obj);unless ($nfound)
{
#select(undef, undef, undef, 0.1); # 100 ms sleep
sleep(1);
}
else
{
foreach (@pending)
{
my $line = $_->read;
if ($line =~ /deferred/)
{
sendMailTramPamPam
>[оверквотинг удален]
>> но есть ситуации когда письмо встает в очередь (deferred), вот эти вещи
>> и интересуют меня! то есть как только письмо встало в очередь
>> - об этом надо получить оповещение на заданный адрес.
>> попробовал
>> delay_notice_recipient = myemail@localhost
>> error_notice_recipient = myemail@localhost
>> шлю сообщение на сервер, где специально настроил 4.7.1 сообщение (попробуйте позже)
>> но на этот ящик ничего не падает
> так или иначе письмо всегда встает в очередь.
> рано или поздно отправитель получит сообщение почему письмо не было доставленов этом-то и весь кайф bounce|etc. сервер пытается доставить отосланное сообщение на основе настроенных Вами параметров (типа тыкаться каждые 2-а часа 5-ть раз, если сервер получателя дал отлуп по 5xx, чтобы ручками это не делать пользователю).
в postfix, кстати есть возможность отослать оповещение для отправител. что типа: Ваше письмо сейчас не доставлено ${потому_что} но оно в очереди еще на ${на_такое-то_время} и не надо его слать опять. etc.
И ТОЛЬКО КОГДА СЕРВЕР САМ СПРАВИТЬСЯ НЕ МОЖЕТ (в соответствии с Вашими настройками) по задаче отправки/релея письма - тут уж сообщения(я про служебные) и отсылаются.
PS
только при удаленном админе такое решение ИНОГДА имеет право жить. когда кроме почты и ССШ ничего не доступно на управляемом сервере по причине блокировки внешнего трафика.PSS
учите протоколы. что можно/не_можно написано для всех. тогда вопросы останутся только по их реализации=возможности_конфигурации в конкретном продукте. но это уже будет совсем другой вес вопроса.
> ну сейчас он настроен таким образом, что приходят отлупы только об отказах
> при отправке, т.е. когда удаленный сервер не хочет принимать письмо и
> говорит "иди нах".
> но есть ситуации когда письмо встает в очередь (deferred), вот эти вещи
> и интересуют меня! то есть как только письмо встало в очередь
> - об этом надо получить оповещение на заданный адрес.а нахрен тебе это надо???????
это самое последние, что в логах обычно ищут. когда процесс обработки письма идет не так . как планировался.
> попробовал
> delay_notice_recipient = myemail@localhost
> error_notice_recipient = myemail@localhost
> шлю сообщение на сервер, где специально настроил 4.7.1 сообщение (попробуйте позже)
> но на этот ящик ничего не падает
> А что postfix "из коробки" работает по-другому?Я вот тоже думал, что так работает "из коробки", пока на одном дебианском гадюшнике не поставил postfix из пакетов, кстати.
Если я правильно понял
bounce_notice_recipient = postmaster@domain.tld
2bounce_notice_recipient = postmaster@domain.tld
delay_notice_recipient = postmaster@domain.tld
error_notice_recipient = postmaster@domain.tldnotify_classes = resource, software, bounce, 2bounce, delay, policy, protocol
>> А что postfix "из коробки" работает по-другому?
> Я вот тоже думал, что так работает "из коробки", пока на одном
> дебианском гадюшнике не поставил postfix из пакетов, кстати.
> Если я правильно понял
> bounce_notice_recipient = postmaster@domain.tld
> 2bounce_notice_recipient = postmaster@domain.tld
> delay_notice_recipient = postmaster@domain.tld
> error_notice_recipient = postmaster@domain.tld
> notify_classes = resource, software, bounce, 2bounce, delay, policy, protocolПрошу прощение, ключевое слово было ОПРЕДЕЛННЫЙ ЯЩИК.
> Прошу прощение, ключевое слово было ОПРЕДЕЛННЫЙ ЯЩИК.Ну, тогда почтовыми фильтрами можно замочить всё что не на ОПРЕДЕЛЁННЫЙ ящик.
Или если postfix delivery через dovecot делает sieve скриптом убить всё ненужное.
>> Прошу прощение, ключевое слово было ОПРЕДЕЛННЫЙ ЯЩИК.
> Ну, тогда почтовыми фильтрами можно замочить всё что не на ОПРЕДЕЛЁННЫЙ ящик.
> Или если postfix delivery через dovecot делает sieve скриптом убить всё ненужное.при большой активности будет очень много почты на postmaster, любой отлуп от спамера - это письмо!
> при большой активности будет очень много почты на postmaster, любой отлуп от
> спамера - это письмо!Я знаю. Сам получаю тысяч десять-двадцать баунсов в день, но у меня их два трудолюбивых демона на перле разбирают
>> при большой активности будет очень много почты на postmaster, любой отлуп от
>> спамера - это письмо!
> Я знаю. Сам получаю тысяч десять-двадцать баунсов в день, но у меня
> их два трудолюбивых демона на перле разбираютСпасибо вам все большое, за внимание!
Решил вопрос комбинацией параметровdelay_warning_time 10s
delay_notice_recipient my@email.comЕще раз всем спасибо!
А если быть точнее - сделал так:bounce_template_file = /etc/postfix/bounce.cf
2bounce_notice_recipient = email@domain.com
bounce_notice_recipient = email@domain.com
delay_notice_recipient = email@domain.com
error_notice_recipient = email@domain.com
notify_classes = resource, software, bounce, 2bounce, delay
delay_warning_time = 1sпри таких настройках после любой из неудачных попыток будет слаться копия отлупа на адрес email@domain.com, а оригинал отсылается на mail_from (из хедеров)
можно закрыть вопрос и приобщить к истории!
Всем еще раз спасибо!
>[оверквотинг удален]
> 2bounce_notice_recipient = email@domain.com
> bounce_notice_recipient = email@domain.com
> delay_notice_recipient = email@domain.com
> error_notice_recipient = email@domain.com
> notify_classes = resource, software, bounce, 2bounce, delay
> delay_warning_time = 1s
> при таких настройках после любой из неудачных попыток будет слаться копия отлупа
> на адрес email@domain.com, а оригинал отсылается на mail_from (из хедеров)
> можно закрыть вопрос и приобщить к истории!
> Всем еще раз спасибо!А содержание файла /etc/postfix/bounce.cf ?
>[оверквотинг удален]
>> bounce_notice_recipient = email@domain.com
>> delay_notice_recipient = email@domain.com
>> error_notice_recipient = email@domain.com
>> notify_classes = resource, software, bounce, 2bounce, delay
>> delay_warning_time = 1s
>> при таких настройках после любой из неудачных попыток будет слаться копия отлупа
>> на адрес email@domain.com, а оригинал отсылается на mail_from (из хедеров)
>> можно закрыть вопрос и приобщить к истории!
>> Всем еще раз спасибо!
> А содержание файла /etc/postfix/bounce.cf ?ну там шаблоны отлупов, можно не приводить здесь)
>> А что postfix "из коробки" работает по-другому?
> Я вот тоже думал, что так работает "из коробки", пока на одном
> дебианском гадюшнике не поставил postfix из пакетов, кстати.
> Если я правильно понялА что Вы поняли?
> bounce_notice_recipient = postmaster@domain.tld
> 2bounce_notice_recipient = postmaster@domain.tld
> delay_notice_recipient = postmaster@domain.tld
> error_notice_recipient = postmaster@domain.tld
> notify_classes = resource, software, bounce, 2bounce, delay, policy, protocol
>> Всем привет!
>> Есть сервер, на нем настроен Postfix, который принимает почту из внешки для
>> виртуальных пользователей, а также позволяет виртуальным пользователям отправлять почту
>> во внешку.
>> Нужно настроить postfix таким образом, чтобы при неудачной отправке (по любой из
>> причин), на определенный мною ящик сразу же отправлялось письмо с причиной.
>> Читал в манах про DSN, как я понял, это делается при помощи
>> bounce, но не совсем понял. Может у кого есть ценный опыт?
> А что postfix "из коробки" работает по-другому?А Вы много "коробок" открывали?
> Всем привет!
> Есть сервер, на нем настроен Postfix, который принимает почту из внешки для
> виртуальных пользователей, а также позволяет виртуальным пользователям отправлять почту
> во внешку.
> Нужно настроить postfix таким образом, чтобы при неудачной отправке (по любой из
> причин), на определенный мною ящик сразу же отправлялось письмо с причиной.
> Читал в манах про DSN, как я понял, это делается при помощи
> bounce, но не совсем понял. Может у кого есть ценный опыт?скорее всего подобные ответы уже есть (по мере чтения отвечаю).
1) главное тут не боунсить почту не легитимным пользователям (читай: не авторизованным или не из локалки (даже из локалки без авторизации лучше не выпускать - ибо спам-боты)). Почему объяснять надо?
2) почитайте про postmaster в RFC и настройте. для ловли ошибок (и тучи спама) вполне достаточно.
3) а нахера Вам "каждое письмо с причиной"? Вам гемороя мало? настройте банальные вещи сначало - те же очереди для повторной отсылки писем итд.
>[оверквотинг удален]
>> bounce, но не совсем понял. Может у кого есть ценный опыт?
> скорее всего подобные ответы уже есть (по мере чтения отвечаю).
> 1) главное тут не боунсить почту не легитимным пользователям (читай: не авторизованным
> или не из локалки (даже из локалки без авторизации лучше не
> выпускать - ибо спам-боты)). Почему объяснять надо?
> 2) почитайте про postmaster в RFC и настройте. для ловли ошибок (и
> тучи спама) вполне достаточно.
> 3) а нахера Вам "каждое письмо с причиной"? Вам гемороя мало? настройте
> банальные вещи сначало - те же очереди для повторной отсылки писем
> итд.1) что посоветуешь касательного первого пункта?
2) спасибо за совет! обязательно обращу внимание
3) нужно оперативно реагировать на ситуации, когда письмо не ушло, они бывают редко, но когда случаются, очень неудобно перед клиентами, а так хоть в курсе будем.
>[оверквотинг удален]
>>> bounce, но не совсем понял. Может у кого есть ценный опыт?
>> скорее всего подобные ответы уже есть (по мере чтения отвечаю).
>> 1) главное тут не боунсить почту не легитимным пользователям (читай: не авторизованным
>> или не из локалки (даже из локалки без авторизации лучше не
>> выпускать - ибо спам-боты)). Почему объяснять надо?
>> 2) почитайте про postmaster в RFC и настройте. для ловли ошибок (и
>> тучи спама) вполне достаточно.
>> 3) а нахера Вам "каждое письмо с причиной"? Вам гемороя мало? настройте
>> банальные вещи сначало - те же очереди для повторной отсылки писем
>> итд.касательно 1 пункта, я имею ввиду как не слать баунсы неавторизованным пользователям?