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

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

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

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

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

20.08.2008 13:53:20
github.com/jstedfast/MailKit - хороший и активный вариант.
Rory 25.11.2015 00:50:59
Проверьте также следующий Почтовый компонент для NET. Просмотрите thedownloadplanet.com/reviews/review-mail-component-for-net. Здесь вы можете увидеть примеры использования IMAP, POP3 и SMTP
alexanoid 24.06.2018 08:35:13
11 ОТВЕТОВ
РЕШЕНИЕ

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

4
20.08.2008 14:01:29
Моя единственная жалоба с Chilkat - API не очень "чувствует" .Net (если вы понимаете, о чем я). например, «GetLastError ()» вместо исключения. Большие компоненты, хотя и отличная цена. Поддержка также на высшем уровне, удивительно быстрое обращение в те времена, когда у меня возникли вопросы.
Adrian Clark 30.09.2008 05:43:10
Вероятно, это связано с тем, что это старая библиотека, портированная на .Net.
Kibbee 8.01.2009 01:40:35
Исключения наверняка «чувствуют» .net, но стоит отметить, что в Руководстве по коду Google используются коды ошибок и утверждения вместо исключений. Они также ясно дают понять в документе, что на самом деле они не чувствуют, что использование исключений является «неправильным», но у них есть некоторые веские причины не делать этого.
Rafael Almeida 4.08.2009 01:19:11

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

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

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

0
20.08.2008 14:06:34

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

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

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

6
23.09.2008 07:42:35
Я не знаю, откуда вы взяли Pop3Client.cs. Я думаю, что SharpMimeTools - это только отличный Mime-анализ.
Sergej Andrejev 18.06.2010 14:04:27

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

1
30.09.2008 05:30:54
Привет, вы можете поделиться примером кода для просмотра списка невидимых писем с использованием C #?
Sriram B 22.07.2013 08:06:07

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

3
6.02.2009 13:40:23

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

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

альтернативный текст

2
8.02.2017 14:16:28
Также это не сломает банк, поскольку начальная стоимость $ 0. Однако текущая работа по разработке и общая «TCO» должны быть рассмотрены.
John K 21.10.2009 22:24:37

Вы можете проверить наш компонент 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

3
8.10.2010 18:02:15
Оставьте оговорку, что это ваш продукт.
Dominic K 13.07.2011 00:39:59
@DMan: Он уже там в самой первой строке почти год («Вы можете проверить нашу Rebex Mail ...»). Я не пытаюсь скрыть свою связь. Приветствуются предложения по его улучшению (английский не мой родной язык).
Martin Vobr 14.07.2011 22:44:12
извините, я пропустил эту тонкость. Мои извенения.
Dominic K 15.07.2011 03:35:16

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

0
27.05.2010 08:52:07

С протоколом 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

7
9.09.2016 17:49:48

Вы можете сделать это с помощью объектов 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, и я буду рад помочь вам, если вам понадобится какая-либо помощь, отметьте опцию «Запросить поддержку» на нашем веб-сайте.

0
28.05.2013 06:43:02

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

IMAPX прост и надежен.

0
16.07.2014 21:00:20