open - Accediendo a Imap en C#
open imap c# (6)
¿Hay un método incorporado para acceder a un servidor Imap (con SSL) en C # o hay una buena biblioteca gratuita?
Con la esperanza de que sea útil para algunos, es posible que desee verificar mi avance:
Si bien hay un par de buenas y bien documentadas bibliotecas IMAP para .NET disponibles, ninguna de ellas es gratuita para uso personal, y menos comercial ... y simplemente no estaba muy satisfecho con las alternativas gratuitas en su mayoría abandonadas que encontré.
S22.Imap admite notificaciones de IDLE IDLE, así como SSL y recuperación de mensajes parciales. Me he esforzado por producir documentation y mantenerla actualizada, porque con los proyectos que encontré, la documentación a menudo era escasa o inexistente.
¡No dude en probarlo y avíseme si tiene algún problema!
He estado buscando una solución IMAP por un tiempo, y después de probar algunas, voy con AE.Net.Mail .
Puede descargar el código yendo a la pestaña Código y hacer clic en el pequeño icono ''Descargar''. Como el autor no proporciona ninguna descarga preconstruida, debe compilarla usted mismo. (Creo que puedes obtenerlo a través de NuGet). Ya no hay un .dll en la carpeta / bin.
No hay documentación, lo cual considero un inconveniente, pero pude mejorar esto mirando el código fuente (¡yay por código abierto!) Y usando Intellisense. El siguiente código se conecta específicamente al servidor IMAP de 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", "[email protected]", "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();
Asegúrese de verificar la página de AE.Net.Mail para la versión más nueva y algunos ejemplos de código mejores.
Intente utilizar la biblioteca: https://imapx.codeplex.com/
Esa biblioteca es gratuita, de código abierto y tiene un ejemplo en este: https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
No hay soporte de .NET framework para IMAP. Tendrá que usar algún componente de terceros.
Pruebe https://www.limilabs.com/mail , es muy asequible y fácil de usar, también es compatible con 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);
}
Tenga en cuenta que este es un producto comercial que he creado.
Puede descargarlo aquí: https://www.limilabs.com/mail .
No lo he probado yo mismo, pero esta es una biblioteca gratuita que puedes probar (no estoy tan seguro acerca de la parte SSL en este):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
Además, está xemail, que tiene parámetros para SSL:
http://xemail-net.sourceforge.net/
[EDITAR] Si usted (o el cliente) tiene el dinero para un cliente de correo profesional, este hilo tiene algunas buenas recomendaciones:
Recomendaciones para un componente .NET para acceder a una bandeja de entrada de correo electrónico
MailSystem.NET contiene toda su necesidad de IMAP4. Es gratis y de código abierto.
(Estoy involucrado en el proyecto)