The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"как проверить, что exim отослал письмо?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"как проверить, что exim отослал письмо?"  +/
Сообщение от user11 on 10-Июл-09, 23:40 
Привет. Пользуюсь MTA exim4 и библиотекой-клиетом jwsmtp в Debian Lenny. После создания и отправки письма, exim может ответить 250 OK <HASH>. Но письмо иногда реально НЕ уходит. В логах можно посмотреть, что сообщение freezed или ещё что-то, из-за несуществующего обратного адреса или ещё что. По-мойму это жутко не удобно: я получаю 250 в ответ, но письмо не уходит. Как я могу программно проверить (через общение с MTA, localhost:25, естественно), что письмо РЕАЛЬНО ушло? Может, возможно как-то использовать ту строку <HASH>, которую exim возвращает вместе с кодом 250? Спасибо.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


2. "как проверить, что exim отослал письмо?"  +/
Сообщение от angra (ok) on 12-Июл-09, 11:48 
Во время SMTP сессии MTA отвечает 250 OK <HASH>, если письмо прошло его собственные стандрты и он положил его в очередь. Однако при отсылке письма из очереди могут возникнуть совсем другие проблемы, узнать о которых можно только из логов, но не как не из SMTP запросов. Читайте внимательно сообщение об ошибке в логе и исправляйте вашу конфигурацию.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "как проверить, что exim отослал письмо?"  +/
Сообщение от me (??) on 12-Июл-09, 23:42 
>Во время SMTP сессии MTA отвечает 250 OK <HASH>, если письмо прошло его собственные стандрты и он положил его в очередь. Однако при отсылке письма из очереди могут возникнуть совсем другие проблемы, узнать о которых можно только из логов, но не как не из SMTP запросов. Читайте внимательно сообщение об ошибке в логе и исправляйте вашу конфигурацию.

т.е. если логгирование отключено, то я вообще никак не узнаю, ушло ли письмо?? Разве это правильно? Странно получается, согласитесь - я прошу программу оправить письмо, она отвечает 250 OK, и всё, далее её действия совершенно закрыты, и отправила ли она письмо невозможно узнать... бред какой-то честно говоря.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "как проверить, что exim отослал письмо?"  +/
Сообщение от angra (ok) on 13-Июл-09, 00:31 
Ну напишите свой rfc, который бы описывал ваше видение работы MTA. Потом почитайте к нему комментарии, возможно узнаете о себе что-то новое. Можете даже попробовать ваш rfc реализовать в виде своего MTA, предложите его другим, узнайте о себе еще больше.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "как проверить, что exim отослал письмо?"  +/
Сообщение от user11 on 13-Июл-09, 01:57 
>Ну напишите свой rfc, который бы описывал ваше видение работы MTA. Потом
>почитайте к нему комментарии, возможно узнаете о себе что-то новое. Можете
>даже попробовать ваш rfc реализовать в виде своего MTA, предложите его
>другим, узнайте о себе еще больше.

похоже что для отсылки писем придётся писать свой MTA. Ладно, всё равно спасибо за помощь :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "как проверить, что exim отослал письмо?"  +/
Сообщение от DeadMustdie email(??) on 13-Июл-09, 17:19 
Процесс передачи почты носит многоуровневый характер, и задача проверки "что письмо реально ушло" в общем случае толком не решается.

В типовом случае письмо проходит (с некоторыми вариантами) следующие этапы:
  1. приём локальным MTA, помещение в локальную очередь
  2. пересылка на smarthost, имеющий доступ в Internet, помещение в очередь на smarthost
  3. передача на один из MX-серверов, ответственных за обработку почты домена, помещение в очередь MX-сервера
  4. передача с MX-сервера на подчинённый сервер, обеспечивающий доступ для пользователей почты, помещение в почтовый ящик пользователя
  5. приём почты клиентским программным обеспечением

На любой из стадий письмо может быть отброшена как спам, заблокировано или задержано. Локальный MTA имеет при этом информацию только о шагах 1 и 2, причём SMTP-клиент "видит" только результат шага 1.

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

Алгоритм доставки почты оптимизирован для ситуации, когда поток почты порождается живыми людьми, а проблемы с доставкой решаются не менее живыми людьми - сисадминами.

Что касается конкретно описанной проблемы (несуществующий обратный адрес), то она решается установкой правильного обратного адреса.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "как проверить, что exim отослал письмо?"  +/
Сообщение от me (??) on 13-Июл-09, 17:24 
>Строго говоря, на указанный в сообщении обратный адрес при возникновении проблем обязательно
>отправляется отчёт об ошибке доставки. Можно попробовать обработать такие отчёты.

Строго говоря, это зависит от настроек DSN. Такой отчёт может и не приходить.

>Что касается конкретно описанной проблемы (несуществующий обратный адрес), то она решается установкой
>правильного обратного адреса.

Это просто одна из возможных проблем. Мне нужно программно проверить реально ли ушло письмо. С помощью SMTP либо ESMTP (ETRN поможет ли?)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "как проверить, что exim отослал письмо?"  +/
Сообщение от DeadMustdie email(??) on 13-Июл-09, 17:44 
>Строго говоря, это зависит от настроек DSN. Такой отчёт может и не
>приходить.

В Интернете встречается много неправильно настроенных серверов.
И с этим действительно нужно жить :)

>Это просто одна из возможных проблем. Мне нужно программно проверить реально ли
>ушло письмо. С помощью SMTP либо ESMTP (ETRN поможет ли?)

Сперва имеет смысл сформулировать, что же такое "реально ушло"?
Добралось на smarthost? Поступило на ответственный MX? Или дошло
до локального ящика адресата?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "как проверить, что exim отослал письмо?"  +/
Сообщение от me (??) on 13-Июл-09, 18:11 
>Сперва имеет смысл сформулировать, что же такое "реально ушло"?
>Добралось на smarthost? Поступило на ответственный MX? Или дошло
>до локального ящика адресата?

Прошло ли письмо успешно все стадии, которые мы в состоянии определить программно на своей машине, откуда посылаем письмо. Если мы НИКАК не можем определить, что письмо дошло
до локального ящика адресата, но можем определить что письмо 100% пришло на ответственный MX, то считаем это успешной посылкой. Хотя бы так.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "как проверить, что exim отослал письмо?"  +/
Сообщение от DeadMustdie email(??) on 13-Июл-09, 19:07 
>Прошло ли письмо успешно все стадии, которые мы в состоянии определить программно
>на своей машине, откуда посылаем письмо. Если мы НИКАК не можем
>определить, что письмо дошло
>до локального ящика адресата, но можем определить что письмо 100% пришло на
>ответственный MX, то считаем это успешной посылкой. Хотя бы так.

Тогда путей два:

(1) взаимодействовать напрямую с ответственным MX-сервером

(2) анализировать протоколы локального SMTP-сервера на предмет изменения состояния доставки сообщений

Для второго варианта при работе с exim достаточно смотреть в mainlog.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "как проверить, что exim отослал письмо?"  +/
Сообщение от me (??) on 13-Июл-09, 23:26 
>[оверквотинг удален]
>>ответственный MX, то считаем это успешной посылкой. Хотя бы так.
>
>Тогда путей два:
>
> (1) взаимодействовать напрямую с ответственным MX-сервером
>
> (2) анализировать протоколы локального SMTP-сервера на предмет изменения состояния доставки сообщений
>
>
>Для второго варианта при работе с exim достаточно смотреть в mainlog.

Поможет ли ETRN из ESMTP?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "как проверить, что exim отослал письмо?"  +/
Сообщение от DeadMustdie email(??) on 15-Июл-09, 09:43 
>Поможет ли ETRN из ESMTP?

Насколько я понимаю - нет.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "как проверить, что exim отослал письмо?"  +/
Сообщение от svn (??) on 15-Июл-09, 14:43 
>Привет. Пользуюсь MTA exim4 и библиотекой-клиетом jwsmtp в Debian Lenny. После создания и отправки письма, exim может ответить 250 OK <HASH>. Но письмо иногда реально НЕ уходит.

Если это так важно, надо использовать MQ вместо email. Там и проверки, и гарантии доставки ))

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру