Czy istnieje wbudowana metoda uzyskiwania dostępu do serwera Imap (z SSL) w języku C #, czy też jest dostępna dobra darmowa biblioteka?
Czy istnieje wbudowana metoda uzyskiwania dostępu do serwera Imap (z SSL) w języku C #, czy też jest dostępna dobra darmowa biblioteka?
Odpowiedzi:
Od jakiegoś czasu szukałem rozwiązania IMAP i po wypróbowaniu kilku, wybieram AE.Net.Mail .
Możesz pobrać kod, przechodząc do zakładki Kod i klikając małą ikonę „Pobierz”. Ponieważ autor nie udostępnia żadnych gotowych plików do pobrania, należy je samodzielnie skompilować. (Uważam, że możesz to uzyskać za pośrednictwem NuGet). W folderze bin / nie ma już pliku .dll.
Nie ma dokumentacji, co uważam za wadę, ale udało mi się to poprawić, patrząc na kod źródłowy (yay dla open source!) I używając Intellisense. Poniższy kod łączy się konkretnie z serwerem IMAP Gmaila:
// 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();
Pamiętaj, aby sprawdzić stronę Github, aby uzyskać najnowszą wersję i kilka lepszych przykładów kodu.
Mając nadzieję, że niektórym się to przyda, możesz sprawdzić moje podejście:
Chociaż istnieje kilka dobrych i dobrze udokumentowanych bibliotek IMAP dla .NET dostępnych, żadna z nich nie jest bezpłatna do użytku osobistego, nie mówiąc już o komercyjnym użytku ... i po prostu nie byłem zadowolony z większości porzuconych darmowych alternatyw, które znalazłem.
S22.Imap obsługuje powiadomienia IMAP IDLE, a także SSL i częściowe pobieranie wiadomości. Włożyłem trochę wysiłku w stworzenie dokumentacji i jej aktualność, ponieważ przy projektach, które znalazłem, często dokumentacja była uboga lub nie istniała.
Zapraszam do wypróbowania i daj mi znać, jeśli napotkasz jakiekolwiek problemy!
Nie ma wsparcia dla platformy .NET dla IMAP. Będziesz musiał użyć jakiegoś komponentu innej firmy.
Wypróbuj https://www.limilabs.com/mail , jest bardzo przystępny cenowo i łatwy w użyciu, obsługuje również 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);
}
Zwróć uwagę, że jest to produkt komercyjny, który stworzyłem.
Możesz go pobrać tutaj: https://www.limilabs.com/mail .
MailSystem.NET zawiera wszystko, czego potrzebujesz do IMAP4. Jest darmowy i open source.
(Jestem zaangażowany w projekt)
Spróbuj skorzystać z biblioteki: https://imapx.codeplex.com/
Ta biblioteka jest bezpłatna, open source i ma przykład pod tym adresem : https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
Sam tego nie próbowałem, ale jest to darmowa biblioteka, którą możesz wypróbować (nie jestem pewien co do części SSL w tej):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
Jest też xemail, który ma parametry SSL:
http://xemail-net.sourceforge.net/
[EDYTUJ] Jeśli Ty (lub klient) macie pieniądze na profesjonalnego klienta pocztowego, ten wątek ma kilka dobrych zaleceń:
Zalecenia dotyczące składnika .NET w celu uzyskania dostępu do skrzynki odbiorczej poczty e-mail