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

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

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

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

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

Ответ 1

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

Ответ 2

С протоколом IMAP вы можете получить доступ к дополнительным папкам и установить статус сообщения (замечено/не видно), также вы можете использовать функцию IDLE для мгновенные уведомления.

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

Ответ 3

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

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

Смотрите файлы POP3Client.cs, POP3Main.cs и insert_bug.aspx

Ответ 4

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

Ответ 5

Вы можете проверить наш компонент Rebex Mail. Он включает протоколы IMAP, SMTP, POP3 и парсер S/MIME.

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

Ответ 6

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

Там есть что-то, что дает вам возможность прокатиться самостоятельно или, по крайней мере, расширить его.

alt text

Ответ 7

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

Ответ 9

С# Стоимость почты $0, но также лицензия GNU GPL, поэтому убедитесь, что ОК.

Ответ 10

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

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

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

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

Ответ 11

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

IMAPX является прямым и надежным.