Уведомления о доставке непосредственно через MTA

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
EverYou
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-02-08 15:54:27

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение EverYou » 2016-05-25 14:06:56

Здравствуйте,
Позвольте поделиться проблемой и заодно испросить совета.
Ситуация
На сервере уже не первый год исправно работает связка Exim 4.84+Dovecot.
Для тех у кого почтооборот поменьше был настроен Roundcube.
Остальные, примерно 80%, сидели на The Bat!
Была поставлена задача заменить The Bat! каким-нибудь бесплатным почтовым клиентом.

За пару месяцев я установил, потестил и отверг около 50-ти почтовых клиентов (и платных и бесплатных).
Наконец остановился на одном, удовлетворявшим условиям поставленной задачи - Foxmail. Начал постепенно переводить народ на него и тут бац! Оказалось FoxMail в отличии от The Bat! не умеет запрашивать уведомления о доставке. А у нас на Горячей Линии эти подтверждения используются как доказательства отработки заявки. Однако сливать FoxMail на поиск и интеграцию которого уже ушло столько времени я не хотел и потому решил попробовать делать DSN запросы на уровне Exim.

Понимая что запрос формирует сам MUA я начил сравнивать служебные заголовки писем отправленных с обоих почтовых клиентов. Отличие было только в наличии у The Bat! заголовка "Return-Receipt-To:". Я попробовал добавлять такой заголовок ко всем письмам через секцию роутеров. Заголовок добавлялся, но уведомления о доставке писем отправленных с FoxMail так и не появлялись.
Более того - сообщение о доставке для писем отправленных с The Bat! приходят даже тогда когда я стал (чисто для эксперимента) удалять заголовки "Return-Receipt-To:" из всех писем на уровне роутеров. Стало быть этот заголовок не важен. Но других различий в служебных заголовках этих двух программ нет!

Тогда я запустил exim в режиме дебагинга и сравнил выводы команд при отправке.
Получается примерно следующая схема

MUA стучится к exim и здоровается, exim сверяется с настройками основной секции здоровается в ответ, объявляет какие команды доступны, MUA говорит от кого письмо, exim начинает гонять его по ACL проверкам и говорит ОК, и вот как раз тут как раз отличие:

у The Bat!

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

16:24:30 47279 SMTP>> 250 OK
16:24:30 47279 SMTP<< RCPT TO:<everyour@yandex.ru> NOTIFY=SUCCESS,FAILURE
16:24:30 47279 DSN: Setting notify success
16:24:30 47279 DSN: Setting notify failure
16:24:30 47279 DSN Flags: c
и далее проверка по секции acl_check_rcpt

А у FoxMail

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

17:26:01 67731 SMTP>> 250 OK
17:26:01 67731 SMTP<< RCPT TO: <EverYour@yandex.ru>
и далее проверка по секции acl_check_rcpt

И только потом идет секция роутеров где происходят манипуляции с заголовком Return-Receipt-To: - по сути уже бесполезные...
Следовательно править что либо там смысла нет.

Попробовал запихнуть заголовок в проверки идущие перед объявлением получателя и запроса нотификации

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

warn !authenticated = *
         hosts          = +relay_from_hosts
         add_header = Return-Receipt-To: $sender_address
Заголовок в исходном тексте письма присутствует, но уведомления по прежнему нет. Честно говоря уже не знаю куда копать.

Вопрос
Есть ли у кого-нибудь идеи как еще можно сгенерировать исходящие DSN запросы?

Хостинговая компания 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/

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение FiL » 2016-05-26 0:29:14

A кто сказал, что Foxmail не умеет запрашивать подтверждения о доставке? Вроде как умеет -
http://www.registrywinner.com/pcsupport ... tion-.html

EverYou
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-02-08 15:54:27

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение EverYou » 2016-05-26 5:35:55

Ну к сожалению там идет речь только Request Read Receipt, что является запросом уведомления о прочтении. А это несколько из другой оперы. Уведомления о прочтении отправляет непосредственно сам принимающий MUA (иногда автоматически но чаще после нажатия пользователем кнопки типа "Уведомить о прочтении"). DSN же генерирует и отправляет именно принимающий MTA (при наличии у входящего письма соответствующих флагов)

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение FiL » 2016-05-26 16:10:14

Был неправ. Я таки думал за Read Receipt. А Delivery Receipt в общем случае смысла мало имеет, ибо он по сути является прямой противоположностью NDR. То есть если ошибки доставки не произошло, то значит доставка произошла штатно. А если кто-то по какой-то причине не шлет ошибок, то он и подтверждений слать не будет.

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение xM » 2016-05-26 20:51:52

Интересная тема.
Вообще Exim guru, пишут что Return-Receipt-To: это устаревший и неподдерживаемый заголовок.
Возможно The Bat! использует методы согласно RFC 3798 - Message Disposition Notification?
Посмотрите письмо на предмет таких заголовков.

Отправлено спустя 27 минут 14 секунд:
Хотя, я тут почитал, и выходит что MDN занимается MUA, а не MTA.

Отправлено спустя 13 минут 4 секунды:
Нашёлся и ответ в виде RFC1891 - SMTP Service Extension for Delivery Status Notifications. Думаю, The Bat! умеет его использовать, а ваш Foxmail нет.
В этой связи, коль уж научить клиент хорошим манерам вы вряд ли сумеете, то остаётся лишь эмулировать обработку DSN при доставке сообщений для набора ваших отправителей посредством правил и роутеров Exim.
IT voodoo blog https://kostikov.co

EverYou
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-02-08 15:54:27

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение EverYou » 2016-05-27 11:35:00

Эмулировать это хорошо. Но как это сделать? Пока единственное, что приходит в голову это парсинг лога Exim и отправка сообщений пользователям на основе наличия завершающей надписи с соответствующим ID письма, типа :
2016-05-26 23:54:39 1b5yYQ-000IdH-Qr Completed
Но по сути оно будет указывать только на успешную отправку с исходящего сервера.
Попробую почитать RFC1891 - SMTP Service Extension for Delivery Status Notifications - может осенит.

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение xM » 2016-05-27 15:49:30

Exim штука мощная и труда большого это сделать, как мне представляется, не составит.
Надо где-то в acl выставлять флаг в виде переменной или добавлять заголовок для, например, authentcated, а далее на его основании в роутерах/транспортах генерировать DSN.
IT voodoo blog https://kostikov.co

EverYou
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-02-08 15:54:27

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение EverYou » 2017-01-30 13:18:50

Не сочтите за некропостинг. Но проблема осталась. К сожалению весной у меня не было достаточно времени, но то что я потратил - не дало никаких результатов.
Сейчас согласно плана я вернулся к разгребанию нерешенных задач.
Опять убил неделю на чтение наших и ненаших интернетов, но задачу так и не решил.
Посему повторю вопрос слегка переформулировав...
Как в исходящем письме, в команду "RCPT TO" после адреса получателя, вставить флаг\параметр "NOTIFY=SUCCESS" посредством exim-а? Чтобы получилось:

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

 RCPT TO:<user@domain.ru> NOTIFY=SUCCESS
Что по моим измышлениям инициализирует DSN сообщение.
________________________________________________________
xM писал(а): Exim штука мощная и труда большого это сделать, как мне представляется, не составит.
Ну возможно я обижен умом, так как для меня это, на данный момент, непроходимый квест. Буду очень благодарен за более конкретный намёк.

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение ASY » 2017-02-12 22:04:20

Ну возможно я обижен умом, так как для меня это, на данный момент, непроходимый квест. Буду очень благодарен за более конкретный намёк.
Дело, действительно, в том самом Return-Receipt-To. Вот тут https://ru.wikipedia.org/wiki/Электронная_почта про него написано.

Отправлено спустя 6 минут 20 секунд:
Надеяться на подтверждение посредством Return-Receipt-To сейчас вряд ли стоит. Точно это поддерживает Sendmail. Пока количество Sendmail-ов в Интернет было много больше, чем всех остальных, вместе взятых, это работало. Сейчас Sendmail лидер всё ещё, но ему на пятки наступают сразу несколько MTA и, в общей массе, он до 25% не дотягивает уже.

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение xM » 2017-02-13 12:19:12

ASY писал(а): Сейчас Sendmail лидер всё ещё
Лидер уже очень давно Exim - свыше 50% видимых серверов на нём.
IT voodoo blog https://kostikov.co

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение ASY » 2017-02-13 14:00:53

Лидер уже очень давно Exim
Совсем нет. Exim даже в тройку не входит: http://www.mailradar.com/mailstat/
Это воп прямо на сейчас:
Sendmail (24%)
Postfix (20%)
qmail (17%)
Microsoft Mail (15%)
Exim (13%)
IMail (2%)
Microsoft Exchange (1%)
Symantec Mail Security (1%)
InterMail (1%)
Lotus Domino (1%)
Other MTA (5%)
Отправлено спустя 11 минут 38 секунд:
Хотя... Надо вот эти цифры запомнить и посмотреть через неделю-другую:
Total number of scanned servers: 2,818,895
Total number of servers that did not respond: 2,759,686
Total number of available servers: 59,209
А то, может, цифры и не меняются много лет...

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение xM » 2017-02-13 16:12:16

Фигня какая-то.
Вот похожая на правду картинка.
http://www.securityspace.com/s_survey/d ... urvey.html

UPD. Ваш источник протух
Copyright 2007 Gecad Technologies. All rights Reserved
IT voodoo blog https://kostikov.co

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение ASY » 2017-02-13 16:34:28

xM писал(а):Фигня какая-то.
UPD. Ваш источник протух
Copyright 2007 Gecad Technologies. All rights Reserved
Это не показатель. В 2011 там вовсю ещё жизнь была. И на 2011, если данные считать актуальными, они тоже как-то сильно различаются у этих источников. Честно говоря, у меня Postfix гораздо больше на слуху, чем Exim. Плюс Зимбру упоминают, а там тоже Postfix наружу торчит... Впрочем, не важно. Главное, что на Return-Receipt-To надежды уже мало. А было, на самом деле, удобно.

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение ASY » 2017-02-18 12:21:18

xM писал(а):Фигня какая-то.
Вот похожая на правду картинка.
Ни сколько не хочу бросить тень на Exim, но вчера обнаружил. Завелась какая-то гнида-спаммер (и давно), которая регистрирует кучу доменов, используемых в mail from при рассылке сапма. Один из многих:

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

domain:        TEX-TO.RU
nserver:       ns1.tex-to.ru. 195.123.211.153
nserver:       ns2.tex-to.ru. 195.123.211.153
state:         REGISTERED, DELEGATED, VERIFIED

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

$ telnet tex-to.ru 25
Trying 195.123.211.153...
Connected to tex-to.ru.
Escape character is '^]'.
220 tex-to.ru ESMTP Exim 4.84_2 Sat, 18 Feb 2017 11:18:11 +0200
Я у себя в логах с десяток таких вчера насобирал, а сколько их всего ? Может, такой рост количества Exim с этим связан ?..

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Уведомления о доставке непосредственно через MTA

Непрочитанное сообщение xM » 2017-02-18 18:00:26

Postfix'ом тоже нормально шлют :-)
IT voodoo blog https://kostikov.co