vista tutorial tag route paso parameter net mvc modelo form ejemplo data controlador asp all asp.net-mvc email asp.net-mvc-2

tutorial - Hilos de fondo ASP.Net MVC para la creación y envío de correos electrónicos



mvc c# windows forms ejemplo (1)

Estoy buscando en postmarkapp.com para manejar el envío de correo electrónico desde mi aplicación asp.net mvc 2 utilizando la biblioteca .net que proporcionan: biblioteca matasellos-dotnet

En su documentación , mencionan que enviar correos electrónicos con archivos adjuntos puede llevar algo de tiempo y es mejor hacerlo en un trabajo de segundo plano. Para mi aplicación, podría enviar entre 10 y 500 correos electrónicos personalizados, algunos con archivos adjuntos en un lote para mis usuarios.

  • ¿Cuál es la mejor manera de hacer este procesamiento en segundo plano de forma no bloqueante para el usuario administrador que inició la creación y el envío de estos correos electrónicos en ASP.Net MVC?

  • ¿Qué sucede si hacen clic en "crear y enviar correos electrónicos" a 500 usuarios y cierran el navegador antes de que se complete ese proceso?

¡Gracias por cualquier ayuda! Nuevo en ASP.Net MVC


Puede generar un nuevo hilo y enviar los correos en este hilo:

[HttpPost] [Authorize(Roles = "Administrator")] public ActionResult SendMails() { new Thread(() => { // Send the emails here }).Start(); return View(); }

Si el usuario cierra el navegador, este hilo continuará ejecutándose hasta que se complete o el AppDomain se cierre. La acción devolverá una vista inmediatamente y no se bloqueará.

También podría ser una buena idea establecer algún indicador en la base de datos de que se está ejecutando una operación de envío de correos electrónicos, de modo que si el administrador hace clic dos veces en el botón, los usuarios no reciben demasiados correos.

Si quieres una solución más sólida, puedes echar un vistazo a MSMQ . Y aquí hay un tutorial que debe comenzar rápidamente.