Сведения о вопросе

HEIGTH

06:36, 29th August, 2020

Теги

.net   email   imap   pop3    

Рекомендации для компонента .NET для доступа к папке входящих сообщений email

Просмотров: 565   Ответов: 11

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

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

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

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



  Сведения об ответе

qwerty101

21:06, 1st October, 2020

С помощью протокола IMAP вы можете получить доступ к вложенным папкам и установить статус сообщения (seen/unseen), также вы можете использовать функцию 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


  Сведения об ответе

+-*/

03:48, 13th August, 2020

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

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

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


  Сведения об ответе

screen

00:46, 3rd August, 2020

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


  Сведения об ответе

baggs

14:09, 27th August, 2020

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

POP3 не имеет понятия о 'unread' сообщениях или поиске сообщений, соответствующих определенным критериям. 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();

Ниже приведен пример объединения нескольких критериев поиска. Это вернет сообщения из прошлого года больше, чем 100KB.

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


  Сведения об ответе

SILA

03:03, 28th August, 2020

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


  Сведения об ответе

PHPH

03:07, 22nd August, 2020

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

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

alt text


  Сведения об ответе

darknet

01:35, 1st August, 2020

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


  Сведения об ответе

dump

03:11, 6th August, 2020

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


  Сведения об ответе

DAAA

09:41, 2nd August, 2020

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

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

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


  Сведения об ответе

lesha

04:09, 28th August, 2020

Это можно сделать с помощью 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, и я буду рад помочь вам, если вам нужна какая-либо помощь, проверьте опцию запроса поддержки на нашем веб-сайте.


  Сведения об ответе

davran

23:23, 10th August, 2020

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

IMAPX прямолинейно и надежно.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться