У меня есть веб-приложение, которое требует, чтобы серверный компонент периодически обращался к почтовым ящикам POP3 и получал электронные письма. Затем служба должна обрабатывать электронные письма, которые включают:Интеграция клиентских функций POP3 в приложение C#?
- Проверка по электронной почте от некоторых бизнес-правил (содержит ли он действительный ссылка в теме, которые пользователь отправил почту и т.д.)
- анализирующего и сохранение любых вложений на диск
- Возьмите тело письма и крепление детали и создать новый элемент в базе данных
- Или обновить существующий элемент, где ссылка соответствует входящей электронной почте сюжетной линии
Каков наилучший способ приблизиться к этому? Я действительно не хочу писать POP3-клиент с нуля, но мне нужно настроить обработку электронной почты. В идеале я хотел бы иметь возможность подключить в какой-то компонент, который делает доступ и поиск для меня, возвращая массив вложений, текст тела, сюжетной линии и т.д. готовы к моей обработке ...
[UPDATE: Обзоры]
ОК, так что я потратил немало времени на поиск в библиотеках (в основном бесплатно) .NET POP3, поэтому я думал, что я представить краткий обзор некоторых из тех, которые упомянуты ниже и несколько других:
- Pop3.net - бесплатно - работает нормально, очень простой с точки зрения функциональности. Это в значительной степени просто команды POP3 и некоторая кодировка base64, но это очень прямолинейно - возможно, хорошее введение.
- Pop3 Wizard - коммерческий/некоторый открытый исходный код - не удалось это построить, пропустив DLL, я бы не стал беспокоиться об этом
- C#Mail - бесплатно для личного пользования - работает хорошо, поставляется с парсером Mime и SMTP-клиентом, однако комментарии на японском языке (неважно), и он не работал с SSL «из коробки», - Мне пришлось изменить конструктор SslStream, после которого он не работал.
- OpenPOP - бесплатно - не обновлялся около 5 лет, так что это текущее состояние .NET 1.0, не поддерживает SSL, но это не было проблемой для решила - я только что заменил g с SslStream, и он сработал. Поставляется с парсером Mime.
Из бесплатных библиотек я бы отправился на C# Mail или OpenPOP.
Я просмотрел несколько коммерческих библиотек: Chillkat, Rebex, RemObjects, JMail.net. Основываясь на характеристиках, цене и впечатлении от компании, я, вероятно, поеду на Rebex и могу в будущем, если мои требования меняются или я сталкиваюсь с проблемами производства с C# Mail или OpenPOP.
В случае чьих-либо потребностей это, это конструктор SslStream замены, которые я использовал для того, чтобы SSL с C# почты и OpenPOP:
SslStream stream = new SslStream(clientSocket.GetStream(), false,
delegate(object sender, X509Certificate cert,
X509Chain chain, SslPolicyErrors errors) { return true; });
Благодарим за обновление и предоставление информации о ваших исследованиях. – 2008-12-08 14:06:40
+1; Было очень похожее требование. Спасибо, что сделали исследование. – tsilb 2008-12-30 16:55:37
Небольшой комментарий: я протестировал несколько упомянутых реализаций и должен был использовать последнюю ежедневную версию с http://anmar.eu.org/projects/sharpmimetools/files/daily/, чтобы получить правильное декодирование MIME. C# Почта не удалось правильно декодировать не-ascii, а большинство других не удалось выполнить в utf8, q кодировке или других деталях. – 2009-01-03 02:40:31