Рекомендации для компонента .NET по доступу к почтовому ящику электронной почты [закрыто]
Вопрос
Меня попросили написать службу 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 для получения сообщений.
Есть что-то вдохновляющее в том, чтобы создать свой собственный проект или, по крайней мере, расширить его.
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:
Пожалуйста, обратите внимание, что я являюсь аффилированным лицом AfterLogic, и я буду рад помочь вам, если вам понадобится какая-либо помощь, проверьте опцию Запросить поддержку на нашем веб-сайте.
IMAPX2 - самый лучший.Используя IMAP, вы можете управлять папками на почтовом сервере, чего вы не смогли бы сделать с помощью POP.IMAPX - это открытый исходный код, с которым вы можете ознакомиться, и он бесплатен в использовании.
IMAPX прост в использовании и надежен.