Рекомендации для компонента .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 для извлечения сообщений.
Там есть что-то, что дает вам возможность прокатиться самостоятельно или, по крайней мере, расширить его.
Ответ 7
Lumisoft является открытым исходным кодом и включает в себя IMAP и POP-клиенты (среди прочего). Я использую их в течение многих лет без проблем.
Ответ 8
Как насчет WCF? Это бесплатно.
Если у вас есть сервер Exchange:
http://msdn.microsoft.com/en-us/library/bb397812.aspx
пример для pop3:
http://bartdesmet.net/blogs/bart/archive/2006/09/13/4417.aspx
Ответ 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 является прямым и надежным.