Рекомендации для компонента .NET по доступу к почтовому ящику электронной почты [закрыто]

StackOverflow https://stackoverflow.com/questions/18006

  •  09-06-2019
  •  | 
  •  

Вопрос

Меня попросили написать службу Windows на C #, чтобы периодически отслеживать входящие сообщения электронной почты и вставлять сведения о любых полученных сообщениях в таблицу базы данных.

Мой инстинкт заключается в том, чтобы сделать это через POP3, и, конечно же, поиск в Google ".NET POP3 component" выдает бесчисленное количество (ок, 146 000) результатов.

Кто-нибудь делал что-нибудь подобное раньше, и можете ли вы порекомендовать достойный компонент, который не разорит банк (максимум на несколько сотен долларов)?

Будут ли какие-либо преимущества в использовании IMAP вместо POP3?

Это было полезно?

Решение

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

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

С помощью протокола IMAP вы можете получить доступ вложенные папки, и установить статус сообщения (видимый / невидимый), также вы можете использовать ХОЛОСТОЙ ХОД функция мгновенных уведомлений.

Mail.dll включает в себя POP3, IMAP, SMTP- ПРОТОКОЛ компоненты с SSL поддержка и мощный MIME-анализатор:

using(Imap imap = new Imap())
{
    imap.Connect("imap.server.com");    // or ConnectSSL for SSL
    imap.Login("user", "password");

    imap.SelectInbox();
    List<long> uids = imap.Search(Flag.Unseen);
    foreach (long uid in uids)
    {
        IMail mail = new MailBuilder()
            .CreateFromEml(imap.GetMessageByUID(uid));
        Console.WriteLine(mail.Subject);
    }
    imap.Close();
}

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

Вы можете скачать его по адресу https://www.limilabs.com/mail

Я использую SharpMimeTools со свободным исходным кодом в своем приложении, BugTracker.NET .Это было очень надежно:

http://anmar.eu.org/projects/sharpmimetools/

Посмотрите файлы Pop3Client.cs, POP3Main.cs и insert_bug.aspx

Я бы порекомендовал Продвинутый интеллект.Существуют компоненты для POP3 и IMAP (ASPNetPOP3 и ASPNetIMAP).Хорошее качество и очень отзывчивая поддержка - я помню, как получал ответы на свои вопросы в выходные.

Возможно, вы захотите проверить наши Компонент повторной отправки почты.Она включает в себя IMAP, SMTP- ПРОТОКОЛ, POP3 протоколы и и S/ПАНТОМИМА синтаксический анализатор.

Тот Самый POP3 в нем нет понятия "непрочитанных" сообщений или функции поиска сообщений, соответствующих определенным критериям. POP3 просто возвращает все сообщения в вашем почтовом ящике.

Используя IMAP вы можете поручить IMAP-серверу отправлять вам только непрочитанные сообщения, сообщения, поступившие с указанного времени, сообщения от конкретного пользователя и т.д.Вам не нужно загружать все это на клиент и выполнять фильтрацию там.

Следующий код показывает, как загружать непрочитанные сообщения из Imap сервер, использующий Rebex.Net.Imap класс.

// create client, connect and log in 
Imap client = new Imap();
client.Connect("imap.example.org");
client.Login("username", "password");

// select folder 
client.SelectFolder("Inbox");

// get message list - envelope headers 
ImapMessageCollection messages = client.Search
  (
     ImapSearchParameter.HasFlagsNoneOf(ImapMessageFlags.Seen)
  ); 

// display info about each message 
Console.WriteLine("UID | From | To | Subject");
foreach (ImapMessageInfo message in messages)
{
    Console.WriteLine(
        "{0} | {1} | {2} | {3}",
        message.UniqueId,
        message.From,
        message.To,
        message.Subject);
}

// disconnect 
client.Disconnect();

Ниже приведен пример объединения нескольких критериев поиска.При этом будут возвращены сообщения за последний год размером более 100 КБ.

ImapMessageCollection messages = client.Search
  (
     ImapSearchParameter.Arrived(DateTime.Now.AddYears(-1), DateTime.Now),
     ImapSearchParameter.Size(1024 * 100, Int32.MaxValue)
  ); 

Вы можете скачать пробную версию с сайта rebex.net/secure-mail.net/download.aspx

Если вы используете реализацию POP3 с открытым исходным кодом или что-то свободно доступное, то у вас будет доступ для изменения кода и расширения его в нужном направлении.Быстрый поиск в Google привел к этому C# POP3-код из Code Project для получения сообщений.

Есть что-то вдохновляющее в том, чтобы создать свой собственный проект или, по крайней мере, расширить его.

alt text

Lumisoft имеет открытый исходный код и включает IMAP- и POP-клиенты (среди прочего).Я пользуюсь ими уже много лет без каких-либо проблем.

Как насчет WCF?Это бесплатно.

Если у вас есть сервер Exchange:http://msdn.microsoft.com/en-us/library/bb397812.aspx

пример для pop3:http://bartdesmet.net/blogs/bart/archive/2006/09/13/4417.aspx

C # Mail стоит 0 долларов, но также имеет лицензию GNU GPL, так что убедитесь, что все в порядке.

Вы можете сделать это с помощью MailBee.СЕТЕВЫЕ объекты: http://www.afterlogic.com/products/net-email-components

Хотя я бы действительно рекомендовал использовать IMAP, особенно поскольку он предлагает поддержку IDLE, упомянутую здесь уже, вы могли бы сделать то же самое с POP3.Там есть краткое описание обоих подходов и полный пример сценария простоя IMAP:

http://www.afterlogic.com/wiki/Getting_notifications_about_new_messages_in_mailbox_%28IMAP_IDLE_and_polling%29

Пожалуйста, обратите внимание, что я являюсь аффилированным лицом AfterLogic, и я буду рад помочь вам, если вам понадобится какая-либо помощь, проверьте опцию Запросить поддержку на нашем веб-сайте.

IMAPX2 - самый лучший.Используя IMAP, вы можете управлять папками на почтовом сервере, чего вы не смогли бы сделать с помощью POP.IMAPX - это открытый исходный код, с которым вы можете ознакомиться, и он бесплатен в использовании.

IMAPX прост в использовании и надежен.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top