c# - new - ¿Hay métodos.NET Framework para analizar un correo electrónico(MIME)?
system net mail c# (6)
¿Existe una clase o conjunto de funciones integradas en .NET Framework (3.5+) para analizar correos electrónicos sin formato (documentos MIME)?
No estoy buscando nada sofisticado o una biblioteca separada, necesita ser incorporada. Voy a usar esto en algunas pruebas unitarias y solo necesito tomar los encabezados principales de interés (A, De, Asunto) junto con el cuerpo (que en este caso siempre será texto y, por lo tanto, no habrá árboles o límites MIME). He escrito varios analizadores MIME en el pasado y si no hay nada disponible, simplemente voy a armar algo de expresiones regulares. Sería genial poder hacer algo como:
MailMessage msg = MailMessage.Parse(text);
¿Pensamientos?
Eche un vistazo al componente de correo Mail.dll .NET , tiene compatibilidad con el soporte MIME , Unicode y correo electrónico multinacional:
MailBuilder builder = new MailBuilder();
// Here you get the message class with attachments, visuals
IMail message = builder.CreateFromEml(File.ReadAllText("test.eml"));
// you can access entire MIME document:
MimeDocument document = message.Document;
Tenga en cuenta que Mail.dll es un producto comercial que he creado.
Puede descargarlo aquí: https://www.limilabs.com/mail .
Muy impresionado con MimeKit gratuito, de código abierto (con licencia MIT) y rápido
- Nuget: https://www.nuget.org/packages/MimeKit
- Versión "Lite" sin el material de cifrado: https://www.nuget.org/packages/MimeKitLite
No, no hay forma de hacer eso todavía. Microsoft no ha creado un convertidor de texto a mensaje del mismo modo que no han creado una biblioteca POP3 o IMAP. Desgraciado.
Recomiendo las librerías de analizadores IMAP y MIME de Lumisoft. Lo usé antes y es fácil trabajar con él. Puede descargarlo desde aquí: http://www.lumisoft.ee/lsWWW/Download/Downloads/Net/ La lib tiene muchos otros protocolos como ftp, pop3, etc. y estoy seguro de que el sc está disponible. Intenta buscar en Google, también puedes encontrarlo en codeproject.com.
Sé que dijiste que no había bibliotecas externas, pero tengo una biblioteca publicada en codeplex:
https://bitbucket.org/otac0n/mailutilities
MimeMessage msg = new MimeMessage(/* string, stream, or Byte[] */);
Ha sido probado con más de 40,000 mensajes de correo electrónico del mundo real.
No estoy muy contento con mi elección del espacio de nombres, pero ... soy demasiado flojo para cambiarlo.
PD:Internamente, mi biblioteca usa estas expresiones regulares como analizador:
internal static string FullMessageMatch =
@"/A(?<header>(?:[^/r/n]+/r/n)*)(?<header_term>/r/n)(?<body>.*)/z";
internal static string HeadersMatch =
@"^(?<header_key>[-A-Za-z0-9]+)(?<seperator>:[ /t]*)(?<header_value>([^/r/n]|/r/n[ /t]+)*)(?<terminator>/r/n)";
internal static string HeaderSeperator =
"/r/n";
internal static string KeyValueSeparator =
@"/A:[ /t]*/z";
echa un vistazo a nuestro Rebex Secure Mail que incluye un (en mi humilde opinión) decente S / MIME analizador. Features incluyen:
- API de MailMessage de alto nivel (mensaje como se ve en un cliente de correo electrónico común)
- API de MimeMessage de bajo nivel (acceso al árbol interno de S / MIME)
- Soporte para MIME, S / MIME
- Soporte para TNEF (winmail.dat) producido por Microsoft Outlook
- Cifrado de mensajes
- Firma de mensaje
- Unicode y soporte de internacionalización
- Lista de recursos vinculados (utilizada para CSS en línea e imágenes en correos HTML)
- Soporte IEnumerable <T> (necesario para LINQ)
- admite todos los marcos compactos .NET y .NET lanzados hasta hoy
El analizador es parte de Rebex Secure Mail y puedes descargarlo aquí .