URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91590
[ Назад ]

Исходное сообщение
"Postfix delivery status"

Отправлено Paulstrong , 18-Май-11 11:10 
Всем привет!
Есть сервер, на нем настроен Postfix, который принимает почту из внешки для виртуальных пользователей, а также позволяет виртуальным пользователям  отправлять почту  во внешку.
Нужно настроить postfix таким образом, чтобы при неудачной отправке (по любой из причин), на определенный мною ящик сразу же отправлялось письмо с причиной.
Читал в манах про DSN, как я понял, это делается при помощи bounce, но не совсем понял. Может у кого есть ценный опыт?

Содержание

Сообщения в этом обсуждении
"Postfix delivery status"
Отправлено rr , 18-Май-11 12:00 
> Всем привет!
> Есть сервер, на нем настроен Postfix, который принимает почту из внешки для
> виртуальных пользователей, а также позволяет виртуальным пользователям  отправлять почту
>  во внешку.
> Нужно настроить postfix таким образом, чтобы при неудачной отправке (по любой из
> причин), на определенный мною ящик сразу же отправлялось письмо с причиной.
> Читал в манах про DSN, как я понял, это делается при помощи
> bounce, но не совсем понял. Может у кого есть ценный опыт?

А что postfix "из коробки" работает по-другому?


"Postfix delivery status"
Отправлено Paulstrong , 18-Май-11 13:36 
>> Всем привет!
>> Есть сервер, на нем настроен Postfix, который принимает почту из внешки для
>> виртуальных пользователей, а также позволяет виртуальным пользователям  отправлять почту
>>  во внешку.
>> Нужно настроить postfix таким образом, чтобы при неудачной отправке (по любой из
>> причин), на определенный мною ящик сразу же отправлялось письмо с причиной.
>> Читал в манах про DSN, как я понял, это делается при помощи
>> bounce, но не совсем понял. Может у кого есть ценный опыт?
> А что postfix "из коробки" работает по-другому?

ну сейчас он настроен таким образом, что приходят отлупы только об отказах при отправке, т.е. когда удаленный сервер не хочет принимать письмо и говорит "иди нах".
но есть ситуации когда письмо встает в очередь (deferred), вот эти вещи и интересуют меня! то есть как только письмо встало в очередь - об этом надо получить оповещение на заданный адрес.

попробовал
delay_notice_recipient = myemail@localhost
error_notice_recipient = myemail@localhost

шлю сообщение на сервер, где специально настроил 4.7.1 сообщение (попробуйте позже)

но на этот ящик ничего не падает


"Postfix delivery status"
Отправлено rr , 18-Май-11 13:38 
>[оверквотинг удален]
> при отправке, т.е. когда удаленный сервер не хочет принимать письмо и
> говорит "иди нах".
> но есть ситуации когда письмо встает в очередь (deferred), вот эти вещи
> и интересуют меня! то есть как только письмо встало в очередь
> - об этом надо получить оповещение на заданный адрес.
> попробовал
> delay_notice_recipient = myemail@localhost
> error_notice_recipient = myemail@localhost
> шлю сообщение на сервер, где специально настроил 4.7.1 сообщение (попробуйте позже)
> но на этот ящик ничего не падает

так или иначе письмо всегда встает в очередь.
рано или поздно отправитель получит сообщение почему письмо не было доставлено


"Postfix delivery status"
Отправлено Paulstrong , 18-Май-11 13:54 
>[оверквотинг удален]
>> но есть ситуации когда письмо встает в очередь (deferred), вот эти вещи
>> и интересуют меня! то есть как только письмо встало в очередь
>> - об этом надо получить оповещение на заданный адрес.
>> попробовал
>> delay_notice_recipient = myemail@localhost
>> error_notice_recipient = myemail@localhost
>> шлю сообщение на сервер, где специально настроил 4.7.1 сообщение (попробуйте позже)
>> но на этот ящик ничего не падает
> так или иначе письмо всегда встает в очередь.
> рано или поздно отправитель получит сообщение почему письмо не было доставлено

Я не против, но мне необходимо получать оповещение о status=deferred на указанный мною ящик, тут просто важна каждая минута, бизнес дело такое


"Postfix delivery status"
Отправлено Феликс Жопорезку , 18-Май-11 13:57 
> мне необходимо получать оповещение о status=deferred на указанный

Можно написать скрипт на перле, который будет высматривать соотв сообщения в логе



"Postfix delivery status"
Отправлено Феликс Жопорезку , 18-Май-11 14:06 
>> мне необходимо получать оповещение о 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


"Postfix delivery status"
Отправлено LSTemp , 18-Май-11 20:16 
>[оверквотинг удален]
>> но есть ситуации когда письмо встает в очередь (deferred), вот эти вещи
>> и интересуют меня! то есть как только письмо встало в очередь
>> - об этом надо получить оповещение на заданный адрес.
>> попробовал
>> delay_notice_recipient = myemail@localhost
>> error_notice_recipient = myemail@localhost
>> шлю сообщение на сервер, где специально настроил 4.7.1 сообщение (попробуйте позже)
>> но на этот ящик ничего не падает
> так или иначе письмо всегда встает в очередь.
> рано или поздно отправитель получит сообщение почему письмо не было доставлено

в этом-то и весь кайф bounce|etc. сервер пытается доставить отосланное сообщение на основе настроенных Вами параметров (типа тыкаться каждые 2-а часа 5-ть раз, если сервер получателя дал отлуп по 5xx, чтобы ручками это не делать пользователю).

в postfix, кстати есть возможность отослать оповещение для отправител. что типа: Ваше письмо сейчас не доставлено ${потому_что} но оно в очереди еще на ${на_такое-то_время} и не надо его слать опять. etc.

И ТОЛЬКО КОГДА СЕРВЕР САМ СПРАВИТЬСЯ НЕ МОЖЕТ (в соответствии с Вашими настройками) по задаче отправки/релея письма - тут уж сообщения(я про служебные) и отсылаются.

PS
только при удаленном админе такое решение ИНОГДА имеет право жить. когда кроме почты и ССШ ничего не доступно на управляемом сервере по причине блокировки внешнего трафика.

PSS
учите протоколы. что можно/не_можно написано для всех. тогда вопросы останутся только по их реализации=возможности_конфигурации в конкретном продукте. но это уже будет совсем другой вес вопроса.


"Postfix delivery status"
Отправлено LSTemp , 18-Май-11 19:52 
> ну сейчас он настроен таким образом, что приходят отлупы только об отказах
> при отправке, т.е. когда удаленный сервер не хочет принимать письмо и
> говорит "иди нах".
> но есть ситуации когда письмо встает в очередь (deferred), вот эти вещи
> и интересуют меня! то есть как только письмо встало в очередь
> - об этом надо получить оповещение на заданный адрес.

а нахрен тебе это надо???????
это самое последние, что в логах обычно ищут. когда процесс обработки письма идет не так . как планировался.


> попробовал
> delay_notice_recipient = myemail@localhost
> error_notice_recipient = myemail@localhost
> шлю сообщение на сервер, где специально настроил 4.7.1 сообщение (попробуйте позже)
> но на этот ящик ничего не падает


"Postfix delivery status"
Отправлено Феликс Жопорезку , 18-Май-11 13:39 
> А что 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 status"
Отправлено rr , 18-Май-11 13:45 
>> А что 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 status"
Отправлено Феликс Жопорезку , 18-Май-11 13:53 
> Прошу прощение, ключевое слово было ОПРЕДЕЛННЫЙ ЯЩИК.

Ну, тогда почтовыми фильтрами можно замочить всё что не на ОПРЕДЕЛЁННЫЙ ящик.
Или если postfix delivery через dovecot делает sieve скриптом убить всё ненужное.


"Postfix delivery status"
Отправлено rr , 18-Май-11 13:57 
>> Прошу прощение, ключевое слово было ОПРЕДЕЛННЫЙ ЯЩИК.
> Ну, тогда почтовыми фильтрами можно замочить всё что не на ОПРЕДЕЛЁННЫЙ ящик.
> Или если postfix delivery через dovecot делает sieve скриптом убить всё ненужное.

при большой активности будет очень много почты на postmaster, любой отлуп от спамера - это письмо!



"Postfix delivery status"
Отправлено Феликс Жопорезку , 18-Май-11 14:01 
> при большой активности будет очень много почты на postmaster, любой отлуп от
> спамера - это письмо!

Я знаю. Сам получаю тысяч десять-двадцать баунсов в день, но у меня их два трудолюбивых демона на перле разбирают



"Postfix delivery status"
Отправлено Paulstrong , 18-Май-11 14:11 
>> при большой активности будет очень много почты на postmaster, любой отлуп от
>> спамера - это письмо!
> Я знаю. Сам получаю тысяч десять-двадцать баунсов в день, но у меня
> их два трудолюбивых демона на перле разбирают

Спасибо вам все большое, за внимание!
Решил вопрос комбинацией параметров

delay_warning_time 10s
delay_notice_recipient my@email.com

Еще раз всем спасибо!


"Postfix delivery status"
Отправлено Paulstrong , 18-Май-11 18:19 
А если быть точнее - сделал так:

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 (из хедеров)

можно закрыть вопрос и приобщить к истории!

Всем еще раз спасибо!


"Postfix delivery status"
Отправлено qwe , 18-Май-11 19:02 
>[оверквотинг удален]
> 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 ?


"Postfix delivery status"
Отправлено paul strong , 19-Май-11 04:39 
>[оверквотинг удален]
>> 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 delivery status"
Отправлено LSTemp , 18-Май-11 20:46 
>> А что 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 status"
Отправлено LSTemp , 18-Май-11 19:34 
>> Всем привет!
>> Есть сервер, на нем настроен Postfix, который принимает почту из внешки для
>> виртуальных пользователей, а также позволяет виртуальным пользователям  отправлять почту
>>  во внешку.
>> Нужно настроить postfix таким образом, чтобы при неудачной отправке (по любой из
>> причин), на определенный мною ящик сразу же отправлялось письмо с причиной.
>> Читал в манах про DSN, как я понял, это делается при помощи
>> bounce, но не совсем понял. Может у кого есть ценный опыт?
> А что postfix "из коробки" работает по-другому?

А Вы много "коробок" открывали?



"Postfix delivery status"
Отправлено LSTemp , 18-Май-11 19:49 
> Всем привет!
> Есть сервер, на нем настроен Postfix, который принимает почту из внешки для
> виртуальных пользователей, а также позволяет виртуальным пользователям  отправлять почту
>  во внешку.
> Нужно настроить postfix таким образом, чтобы при неудачной отправке (по любой из
> причин), на определенный мною ящик сразу же отправлялось письмо с причиной.
> Читал в манах про DSN, как я понял, это делается при помощи
> bounce, но не совсем понял. Может у кого есть ценный опыт?

скорее всего подобные ответы уже есть (по мере чтения отвечаю).

1) главное тут не боунсить почту не легитимным пользователям (читай: не авторизованным или не из локалки (даже из локалки без авторизации лучше не выпускать - ибо спам-боты)). Почему объяснять надо?

2) почитайте про postmaster в RFC и настройте. для ловли ошибок (и тучи спама) вполне достаточно.

3) а нахера Вам "каждое письмо с причиной"? Вам гемороя мало? настройте банальные вещи сначало - те же очереди для повторной отсылки писем итд.



"Postfix delivery status"
Отправлено paul strong , 19-Май-11 04:41 
>[оверквотинг удален]
>> bounce, но не совсем понял. Может у кого есть ценный опыт?
> скорее всего подобные ответы уже есть (по мере чтения отвечаю).
> 1) главное тут не боунсить почту не легитимным пользователям (читай: не авторизованным
> или не из локалки (даже из локалки без авторизации лучше не
> выпускать - ибо спам-боты)). Почему объяснять надо?
> 2) почитайте про postmaster в RFC и настройте. для ловли ошибок (и
> тучи спама) вполне достаточно.
> 3) а нахера Вам "каждое письмо с причиной"? Вам гемороя мало? настройте
> банальные вещи сначало - те же очереди для повторной отсылки писем
> итд.

1) что посоветуешь касательного первого пункта?
2) спасибо за совет! обязательно обращу внимание
3) нужно оперативно реагировать на ситуации, когда письмо не ушло, они бывают редко, но когда случаются, очень неудобно перед клиентами, а так хоть в курсе будем.


"Postfix delivery status"
Отправлено paul strong , 19-Май-11 04:42 
>[оверквотинг удален]
>>> bounce, но не совсем понял. Может у кого есть ценный опыт?
>> скорее всего подобные ответы уже есть (по мере чтения отвечаю).
>> 1) главное тут не боунсить почту не легитимным пользователям (читай: не авторизованным
>> или не из локалки (даже из локалки без авторизации лучше не
>> выпускать - ибо спам-боты)). Почему объяснять надо?
>> 2) почитайте про postmaster в RFC и настройте. для ловли ошибок (и
>> тучи спама) вполне достаточно.
>> 3) а нахера Вам "каждое письмо с причиной"? Вам гемороя мало? настройте
>> банальные вещи сначало - те же очереди для повторной отсылки писем
>> итд.

касательно 1 пункта, я имею ввиду как не слать баунсы неавторизованным пользователям?