Обработка входящей электронной почты - PullRequest
7 голосов
/ 16 января 2009

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

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

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

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

РЕДАКТИРОВАТЬ: Скопировано из "non-answer":

В настоящее время мы смотрим на использование учетные записи электронной почты нашей хостинговой компании обеспечивает.

Наш собственный почтовый сервер потенциально может быть вариантом, но это что-то нам нужно связаться с хозяином по поводу.

Ответы [ 5 ]

4 голосов
/ 16 января 2009

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

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

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

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

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

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

2 голосов
/ 16 января 2009
1 голос
/ 16 января 2009

Вариантов довольно много, на случай, если в вашем распоряжении сервисная шина, в основном она поставляется с адаптером 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();
0 голосов
/ 16 марта 2010

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

0 голосов
/ 16 января 2009

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

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

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