Чи є вбудований метод доступу до сервера 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 Framework для 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 для доступу до скриньки електронної пошти