C #'da bir Imap sunucusuna (SSL ile) erişmek için yerleşik bir yöntem var mı yoksa iyi bir ücretsiz kitaplık var mı?
C #'da bir Imap sunucusuna (SSL ile) erişmek için yerleşik bir yöntem var mı yoksa iyi bir ücretsiz kitaplık var mı?
Yanıtlar:
Bir süredir IMAP çözümü arıyordum ve epeyce denedikten sonra AE.Net.Mail ile gidiyorum .
Kodu, Kod sekmesine gidip küçük 'İndir' simgesine tıklayarak indirebilirsiniz. Yazar önceden oluşturulmuş herhangi bir indirme sağlamadığından, onu kendiniz derlemelisiniz. (Yine de NuGet aracılığıyla alabileceğinize inanıyorum). Artık bin / klasörde .dll yok.
Olumsuz olduğunu düşündüğüm bir belge yok, ancak bunu kaynak koduna bakarak (açık kaynak için yay!) Ve Intellisense kullanarak kırbaçlamayı başardım. Aşağıdaki kod, özellikle Gmail'in IMAP sunucusuna bağlanır:
// 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();
En yeni sürüm ve bazı daha iyi kod örnekleri için Github sayfasını kontrol ettiğinizden emin olun .
Bazıları için faydalı olacağı umuduyla, benim adımıma bir göz atmak isteyebilirsiniz:
NET için birkaç iyi ve iyi belgelenmiş IMAP kitaplığı mevcut olsa da, ticari kullanım bir yana, bunların hiçbiri kişisel için ücretsiz değil ... ve bulduğum çoğunlukla terk edilmiş ücretsiz alternatiflerden pek memnun değildim.
S22.Imap, IMAP IDLE bildirimlerinin yanı sıra SSL ve kısmi mesaj getirmeyi de destekler. Dokümantasyon üretmek ve güncel tutmak için biraz çaba sarf ettim , çünkü bulduğum projelerde dokümantasyon genellikle seyrek ya da hiç yoktu.
Deneyin ve herhangi bir sorunla karşılaşırsanız bana bildirin!
IMAP için .NET çerçeve desteği yoktur. Bazı üçüncü taraf bileşenlerini kullanmanız gerekecek.
Deneyin Https://www.limilabs.com/mail'i , çok ekonomik ve kullanımı kolaydır, ayrıca SSL'yi de destekler:
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);
}
Lütfen bunun oluşturduğum ticari bir ürün olduğunu unutmayın.
Buradan indirebilirsiniz: https://www.limilabs.com/mail .
MailSystem.NET , IMAP4 için tüm içerir. Ücretsiz ve açık kaynaklıdır.
(Projeye dahil oldum)
Kitaplığı kullanmayı deneyin: https://imapx.codeplex.com/
Bu kitaplık ücretsiz, açık kaynaktır ve şuna bir örnek var: https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
Ben kendim denemedim, ancak bu deneyebileceğiniz ücretsiz bir kitaplık (bunun SSL kısmından pek emin değilim):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
Ayrıca, SSL için parametreleri olan xemail vardır:
http://xemail-net.sourceforge.net/
[DÜZENLE] Eğer siz (veya müşteri) profesyonel bir posta istemcisi için paranız varsa, bu ileti dizisinin bazı iyi önerileri vardır:
E-posta gelen kutusuna erişmek için bir .NET bileşenine yönelik öneriler