Enviando correo con ASP.Net vNext

En ASP.Net heredado y .Net en general, el envío de correo se realizó a través de las clases System.Net.Mail que residían en System.dll . Ahora con KRE, vNext no parece tener System.Net.Mail como un paquete separado.

Haciendo referencia al marco "net453" en project.json

 "frameworks": { "aspnet50": { }, "aspnetcore50": { }, "net453": {} // <<< throws compilation errors }, 

hace que todo el infierno se desate con errores como:

.NET Framework 4.5.3 error CS0234: el tipo o el nombre del espacio de nombres ‘AspNet’ no existe en el espacio de nombres ‘Microsoft’ (¿falta una referencia de ensamblado?)

Prácticamente se queja de todas las dependencias de vNext que forman parte de los paquetes de kpm.

Entonces, ¿alguien ha descubierto una manera de enviar correos electrónicos utilizando ASP.Net vNext todavía?

Nota

Aunque el System aparece en Referencias y aunque Intellisense muestra que System.Net.Mail está disponible para su uso, el código no se comstack. Por ejemplo, una statement simple como esta, aunque parece válida,

 using System.Net.Mail; var m = new MailMessage(); 

lanzará un error de comstackción como:

Error de ASP.NET Core 5.0 CS0234: El tipo o nombre de espacio de nombres ‘Net’ no existe en el espacio de nombres ‘System’ (¿falta una referencia de ensamblado?)

Error de ASP.NET Core 5.0 CS0246: No se pudo encontrar el tipo o el nombre del espacio de nombres ‘MailMessage’ (¿falta una directiva de uso o una referencia de ensamblado?)

Actualizar

Con el último Visual Studio 2015 CTP 5, parecían haber solucionado el problema intelectual. Ahora System.Net ya no tiene espacio de nombres de Mail . En una nota al margen, el proyecto vNext que creé con la versión preliminar de VS 2015 ya no funciona. ¡Recibo un error 403.3 en la página de inicio! ¡Ah, la alegría de trabajar con software beta!

Para usar System.Net.Mail su aplicación puede apuntar solo a aspnet50 . El objective aspnetcore50 no tiene ese soporte (al menos, no ahora, que yo sepa).

Nunca debe tener su aplicación de destino net453 (que, como mencionó Luca en un comentario, desde entonces se le ha cambiado el nombre) porque las aplicaciones ASP.NET 5 no se ejecutan en esa plataforma.

Una aplicación que se dirige a aspnet50 generalmente puede hacer referencia a cualquier paquete NuGet .NET 4.0+ o referencia GAC.

Entonces, en su caso, elimine los net453 y aspnetcore50 , y dentro del destino aspnet50 agregue una referencia de marco a System.Net.Mail .

Una alternativa completa sería encontrar algún otro paquete NuGet existente que admita el envío de correo electrónico tanto en aspnet50 como en aspnetcore50 , pero dudo que ese paquete exista en este momento (aunque sin duda lo hará en algún momento en el futuro).

Para hacer un seguimiento … el equipo de .NET ha declarado que portar System.Net.Mail será menos que sencillo y probablemente tomará un tiempo. Eso es un fastidio ya que un sitio web de producción generalmente hace más que un pequeño envío de correo electrónico.

Mientras tanto, alguien acaba de lanzar una API de correo electrónico compatible con Core-Clr llamada MailKit. Puede leer sobre esto aquí https://github.com/jstedfast/MailKit/issues/212