¿Cuál es la mejor manera de enviar grandes cantidades de correos electrónicos en ASP.NET?
-
09-06-2019 - |
Pregunta
Actualmente estoy en un bucle de datareader y la llamada al Sistema.Net.Correo.SmtpClient del método Send ().El problema con esto es que es lento.Cada correo electrónico que toma alrededor de 5 a 10 segundos para enviar (es posible que esto es sólo un problema con mi host).Tuve que reemplazar el executionTimeout defecto en mi web.archivo de configuración (el valor predeterminado es de 90 segundos) como este:
<httpRuntime executionTimeout="3000" />
Una advertencia:Estoy en un host compartido, así que no creo que me es posible enviar utilizando el PickupDirectoryFromIis opción (al menos, me dio errores cuando la prendí).
Solución
No se pudo enviar el correo asincrónica.De esa manera el tiempo de espera no debe interrumpir su envío.
En este artículo deben ayudarle a empezar con esto: El envío de Correos electrónicos de forma Asincrónica en C#.
Existe otro enfoque aquí: http://www.vikramlakhotia.com/Sending_Email_asynchronously_in_AspNet_20.aspx
Y supuesto que hay varios clientes comerciales disponibles, pero el único que he probado y puedo recomendar es http://www.aspnetemail.com/
Otros consejos
Definitivamente desovar en un segundo plano el proceso de trabajo de lo que salga de forma asincrónica.
Por CIERTO, de 5 a 10 segundos por e-mail parece lento para mí.En mi servidor tarda sólo fracciones de segundo por e-mail.