Есть ли встроенный метод доступа к серверу Imap (с SSL) на C # или есть хорошая бесплатная библиотека?
Есть ли встроенный метод доступа к серверу Imap (с SSL) на C # или есть хорошая бесплатная библиотека?
Ответы:
Я уже некоторое время искал решение IMAP, и, попробовав немало, выбрал AE.Net.Mail .
Вы можете загрузить код, перейдя на вкладку «Код» и щелкнув небольшой значок «Загрузить». Поскольку автор не предоставляет готовых загрузок, вы должны скомпилировать его самостоятельно. (Я считаю, что вы можете получить это через NuGet). В папке bin / больше нет .dll.
Нет документации, что я считаю недостатком, но я смог ускорить это, просмотрев исходный код (ура для открытого исходного кода!) И используя Intellisense. Приведенный ниже код специально подключается к серверу IMAP Gmail:
// Connect to the IMAP server. The 'true' parameter specifies to use SSL
// which is important (for Gmail at least)
ImapClient ic = new ImapClient("imap.gmail.com", "name@gmail.com", "pass",
ImapClient.AuthMethods.Login, 993, true);
// Select a mailbox. Case-insensitive
ic.SelectMailbox("INBOX");
Console.WriteLine(ic.GetMessageCount());
// Get the first *11* messages. 0 is the first message;
// and it also includes the 10th message, which is really the eleventh ;)
// MailMessage represents, well, a message in your mailbox
MailMessage[] mm = ic.GetMessages(0, 10);
foreach (MailMessage m in mm)
{
Console.WriteLine(m.Subject);
}
// Probably wiser to use a using statement
ic.Dispose();
Убедитесь, что вы заглянули на страницу Github, чтобы найти новейшую версию и несколько лучших примеров кода.
В надежде, что это будет полезно для кого-то, вы можете проверить мои попытки:
Несмотря на то, что существует пара хороших и хорошо документированных библиотек IMAP для .NET, ни одна из них не является бесплатной для личного, не говоря уже о коммерческом использовании ... и я просто не был полностью удовлетворен найденными мной бесплатными альтернативами, в большинстве своем заброшенными.
S22.Imap поддерживает уведомления IMAP IDLE, а также SSL и частичную выборку сообщений. Я приложил определенные усилия для создания документации и поддержания ее в актуальном состоянии, потому что в найденных мною проектах документация часто была скудной или отсутствовала.
Не стесняйтесь попробовать и дайте мне знать, если у вас возникнут какие-либо проблемы!
Платформа .NET не поддерживает IMAP. Вам нужно будет использовать какой-то сторонний компонент.
Попробуйте https://www.limilabs.com/mail , он очень доступен и прост в использовании, также поддерживает SSL:
using(Imap imap = new Imap())
{
imap.ConnectSSL("imap.company.com");
imap.Login("user", "password");
imap.SelectInbox();
List<long> uids = imap.SearchFlag(Flag.Unseen);
foreach (long uid in uids)
{
string eml = imap.GetMessageByUID(uid);
IMail message = new MailBuilder()
.CreateFromEml(eml);
Console.WriteLine(message.Subject);
Console.WriteLine(message.TextDataString);
}
imap.Close(true);
}
Обратите внимание, что это коммерческий продукт, который я создал.
Вы можете скачать его здесь: https://www.limilabs.com/mail .
MailSystem.NET содержит все, что вам нужно для IMAP4. Это бесплатно и с открытым исходным кодом.
(Я участвую в проекте)
Попробуйте использовать библиотеку: https://imapx.codeplex.com/
Эта библиотека бесплатна, с открытым исходным кодом и имеет пример здесь: https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
Я сам не пробовал, но это бесплатная библиотека, которую вы можете попробовать (я не уверен в части SSL на этом):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
Также есть xemail, у которого есть параметры для SSL:
http://xemail-net.sourceforge.net/
[EDIT] Если у вас (или у клиента) есть деньги на профессиональный почтовый клиент, в этой ветке есть несколько хороших рекомендаций:
Рекомендации для компонента .NET для доступа к почтовому ящику