¿Existe un método incorporado para acceder a un servidor Imap (con SSL) en C # o hay una buena biblioteca gratuita?
¿Existe un método incorporado para acceder a un servidor Imap (con SSL) en C # o hay una buena biblioteca gratuita?
Respuestas:
He estado buscando una solución IMAP durante un tiempo y, después de probar algunas, me decanto por AE.Net.Mail .
Puede descargar el código yendo a la pestaña Código y haciendo clic en el pequeño icono 'Descargar'. Como el autor no proporciona descargas preconstruidas, debe compilarlo usted mismo. (Aunque creo que puede obtenerlo a través de NuGet). Ya no hay un .dll en la carpeta bin /.
No hay documentación, lo que considero una desventaja, pero pude mejorar esto mirando el código fuente (¡yay para 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", "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();
Asegúrese de consultar la página de Github para obtener la versión más reciente y algunos ejemplos de código mejores.
Con la esperanza de que sea útil para algunos, es posible que desee ver mi prueba:
Si bien hay un par de bibliotecas IMAP buenas y bien documentadas para .NET disponibles, ninguna de ellas es gratuita para uso personal, y mucho menos comercial ... y simplemente no estaba del todo satisfecho con las alternativas gratuitas en su mayoría abandonadas que encontré.
S22.Imap admite notificaciones IMAP IDLE, así como SSL y recuperación parcial de mensajes. Me he esforzado en producir documentación 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!
No hay soporte de .NET Framework para IMAP. Deberá utilizar 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 .
MailSystem.NET contiene toda su necesidad de IMAP4. Es gratis y de código abierto.
(Estoy involucrado en el proyecto)
Intente usar la biblioteca: https://imapx.codeplex.com/
Esa biblioteca es gratuita, de código abierto y tiene un ejemplo en esto: https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
No lo he probado yo mismo, pero esta es una biblioteca gratuita que podría probar (no estoy tan seguro de la parte de SSL en esta):
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