Обработка входящей электронной почты

Как программно прочитать входящее письмо с помощью .NET. Мне нужен способ взять содержимое сообщения электронной почты (в данном случае XML) на POP-сервере и прочитать его в моем приложении.

В идеале это можно решить с помощью:

  • .NET-код, который я могу запустить как фоновая задача на моем веб-сервере, чтобы обработать электронное письмо.
  • Служба, которая может размещать содержимое электронного письма на мой веб-сервер.

Хотя я открыт для других вариантов.

Обновлено: скопировано из «отсутствия ответа»:

Currently, we're looking at using the email accounts our hosting company provides.

Our own mail server could potentially be an option, but its something the we'd need to contact the host about.

Попробуйте OpenPop.NET: nuget.org/packages/OpenPop.NET

razon 13.01.2017 14:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
2
9 223
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Вариантов довольно много, если в вашем распоряжении служебная шина, в основном она поставляется с адаптером pop3.

Или вы можете использовать api pop3 (easymail от quiksoft - неплохой вариант). Также в нем есть отличный продукт для обработки отскоков.

Чтобы прочитать все сообщения SMTP. Если у вас есть почтовый сервер, в зависимости от типа сервера существуют другие способы доступа к сообщениям, иногда пользовательские Apis и плагины или файловая система. У вас есть собственный почтовый сервер? Какой почтовый сервер вы используете?

Если возможно, я бы не выбрал протокол POP, у него есть некоторые ограничения, среди прочего, например, наличие только одной папки, "получение / чтение" сообщения удаляет сообщение из папки (что означает, что один процесс для чтения сообщений) и другие вещи . В зависимости от того, сколько писем вам нужно проанализировать, это может по-прежнему работать для вас. IMAP уже был бы улучшением.

С помощью компонента quiksoft IMAP:

//create a new IMAP4 object, connect 
//to a IMAP4 server and login 
IMAP4 imap = new IMAP4();
imap.Connect("mail.yourdomain.com");
imap.Login("mailbox", "password");

//select the inbox and download the envelopes
imap.SelectMailbox("Inbox");
EnvelopeCollection imapEnvelopes;
imapEnvelopes = imap.GetEnvelopes();

//loop through each message
//and output the subject
foreach (Envelope imapEnvelope in imapEnvelopes)
{
   //write the subject out to the console
   Console.WriteLine(imapEnvelope.Subject);
}

//close resources
imap.Logout();
Ответ принят как подходящий

На самом деле мы только что реализовали то же самое.

Мы обрабатываем содержимое сообщений электронной почты и отправляем данные в нашу CRM через веб-службу. Мы используем C# с .net 3.5

Для обработки почты мы использовали IMap. В CodeProject есть несколько клиентских библиотек .net. Думаю, мы использовали тот, что был от LumiSoft.

Мы попробовали WebDav, но нам не повезло. В результате мы получили Pop3 или IMap. IMap поддерживает папки, которые нам нужны, поэтому мы пошли этим путем. Я уверен, что было бы легко сделать то же самое с POP3, если ваш сервер не поддерживает IMap.

Обычно мы подключаемся к нашему серверу Exchange каждый час, загружаем все новые сообщения электронной почты и обрабатываем их. Пока все работает хорошо.

Обновлено: мы также используем SharpMimeИнструменты, чтобы преобразовать необработанные электронные письма в более удобный формат.

Почтовый сервер Merak от IceWarp отлично подходит для этого. Это позволило нам настроить особый вид учетной записи, называемой исполняемой учетной записью. Вы связываете .exe с адресом электронной почты и выбираете кучу вещей для отправки в командной строке. Когда на эту учетную запись отправляется электронное письмо, запускается исполняемый файл. .Exe должен быть консольным приложением, и вы должны позаботиться о том, чтобы он не зависал, а что нет, но я подумал, что это идеальное решение.

Мы используем его для обработки статистики из Google Analytics и возврата с других почтовых серверов.

+1 для почтового сервера Merak, это отличный продукт. То, как он позволяет использовать плагин dll, также отлично подходит для обработки отказов.

Raymond Roestenburg 16.01.2009 17:07

Вы всегда можете сделать DIY Класс POP 3 POP - один из самых простых протоколов

Другие вопросы по теме