Esiste un metodo integrato per accedere a un server Imap (con SSL) in C # o esiste una buona libreria gratuita?
Esiste un metodo integrato per accedere a un server Imap (con SSL) in C # o esiste una buona libreria gratuita?
Risposte:
È da un po 'che cerco una soluzione IMAP e, dopo averne provate alcune, vado con AE.Net.Mail .
Puoi scaricare il codice andando nella scheda Codice e facendo clic sulla piccola icona "Download". Poiché l'autore non fornisce alcun download predefinito, è necessario compilarlo da soli. (Credo che tu possa ottenerlo tramite NuGet però). Non è più presente un file .dll nella cartella bin /.
Non c'è documentazione, che considero uno svantaggio, ma sono stato in grado di tirarlo su guardando il codice sorgente (yay per l'open source!) E usando Intellisense. Il codice seguente si collega in modo specifico al server IMAP di 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();
Assicurati di controllare la pagina Github per la versione più recente e alcuni esempi di codice migliori.
Nella speranza che possa essere utile ad alcuni, potresti dare un'occhiata al mio tentativo:
Sebbene siano disponibili un paio di librerie IMAP valide e ben documentate per .NET, nessuna di esse è gratuita per uso personale, figuriamoci commerciale ... e non ero del tutto soddisfatto delle alternative gratuite per lo più abbandonate che ho trovato.
S22.Imap supporta le notifiche IMAP IDLE così come SSL e il recupero parziale dei messaggi. Mi sono impegnato a produrre documentazione e mantenerla aggiornata, perché con i progetti che ho trovato, la documentazione era spesso scarsa o inesistente.
Sentiti libero di provarlo e fammi sapere se riscontri problemi!
Non è disponibile il supporto .NET framework per IMAP. Dovrai utilizzare alcuni componenti di terze parti.
Prova https://www.limilabs.com/mail , è molto conveniente e facile da usare, supporta anche 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);
}
Tieni presente che questo è un prodotto commerciale che ho creato.
Puoi scaricarlo qui: https://www.limilabs.com/mail .
MailSystem.NET contiene tutto il necessario per IMAP4. È gratuito e open source.
(Sono coinvolto nel progetto)
Prova a utilizzare la libreria: https://imapx.codeplex.com/
Quella libreria è gratuita, open source e ha un esempio a questo: https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
Non l'ho provato da solo, ma questa è una libreria gratuita che potresti provare (non sono così sicuro della parte SSL su questa):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
Inoltre, c'è xemail, che ha parametri per SSL:
http://xemail-net.sourceforge.net/
[EDIT] Se tu (o il cliente) avete i soldi per un client di posta professionale, questo thread ha alcuni buoni consigli:
Suggerimenti per un componente .NET per accedere a una casella di posta in arrivo