Лучший способ узнать, имеет ли SMTP-сообщение заголовок IMF? - PullRequest
0 голосов
/ 28 февраля 2012

Я пишу синтаксический анализатор SMTP, который должен обрабатывать стандартный SMTP, а также сообщения SMTP, отправленные из системы, которую я не контролирую, которые не включают заголовок IMF. Например,

Стандартный SMTP с заголовком IMF:

From: "Blah blah blah" blah@bluhblah.blah
To: Derp@dederp.com
Subject: This is a standard SMTP message
Date: Mon, 5 Oct 2009 11:36:07 +0530
MIME-Version: 1.0
Content-Type: text / plain
Content-Language: en-us
Testing testing 1 2 3

убитый SMTP:

Testing testing 1 2 3

Желательно в C #, но любой язык в порядке. Никаких спекуляций, пожалуйста, мне нужен кто-то, кто понимает спецификации SMTP / IMF, чтобы ответить. Я забираю это назад, спекулируйте всем, что вы хотите. лол

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

пара вещей.

Вам не нужен парсер SMTP, вам нужен парсер сообщений Mime. Разбор сообщений MIME не является тривиальным упражнением. Существуют тысячи неработающих форматов сообщений или просто странные форматы, но все еще совместимые с RFC2822 (Mime Message).

Я рекомендую просто использовать анализатор сообщений Mime (либо из codeproject, либо из аналогичного источника - если вам нужен бесплатный), либо коммерческий продукт.

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

- Dave
PS: я неравнодушен к aspNetMime, так как я написал это.

1 голос
/ 28 февраля 2012

Если вы действительно не хотите писать собственный SMTP-парсер; Вам понадобится сторонняя библиотека, чтобы помочь. Мы выбрали OpenPop . Он работает хорошо, обрабатывает все, что мы на него бросили, и все еще поддерживается.

Нет, я не связан с ними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...