Работа с электронными письмами об отказе (только POP3, без IMAP) - PullRequest
0 голосов
/ 18 июля 2011

Я хочу спросить о работе с электронными письмами об отказе (но на сервере без IMAP, только с POP3 и без Outlook на моей машине).Я не хочу каждый раз читать все электронные письма с сервера.

Итак, сначала я подумал: 1. читать электронные письма от самых старых до самых новых, проверяя наличие отказов.2. сохранить дату последнего электронного письма в переменной «TEMPDATA» // Этот процесс будет выполнен только один раз, в начале

, а затем в цикле таймера (в другой ветке): 3. прочитатьэлектронные письма от «TEMPDATA» до самых новых, проверка наличия отказов (проверьте, есть ли тема «« недоставленная почта, возвращенная отправителю »».)

псевдокод моей идеи:

TIMER( Tick every 5minutes )
{
    (LOCK)
    loop(on inbox from the "TEMPDATA" to the newest)
    {
        // Read single email

        if (the subject is "Undelivered Mail Returned to Sender")
        {
            // Here I will parse message so that I will know the addresse
            // And removie that addresse from my list.
        }
    }
    (UNLOCK)
}

Мне просто любопытно, есть ли какое-нибудь лучшее решение.

Ответы [ 2 ]

0 голосов
/ 29 августа 2014

Я знаю, что это старый вопрос, но он показывается высоко в результатах поиска, поэтому мы надеемся, что это поможет другим.

Я нашел это решение с открытым исходным кодом:

https://mailsystem.codeplex.com/

Кажется, у нас пока все хорошо. Документации практически не существует, хотя Intelli-смысл в Visual Studio довольно подробный.

0 голосов
/ 21 августа 2011
  1. Если вы планируете использовать протокол IMAP, я бы предпочел использовать UID электронной почты, а не дату.

  2. Проверка только темы не является лучшим способом проверки, если сообщение является отчет об ошибке доставки.Некоторые электронные письма будут иметь другую тему (другой язык).Gmail, например, использует дополнительный заголовок.Однако большинство сообщений об ошибках доставки следуют спецификации RFC3464 и используют формат уведомления о доставке ( DSN ).

  3. Вы можете попробовать использовать Mail.dll component для этого:

http://www.lesnikowski.com/blog/index.php/bounce-handling/

Обратите внимание, что это коммерческий продукт, который я создал.

...