2012-06-11 52 views
5

Tengo un sitio web y necesito enviar correos electrónicos personalizados a los miembros registrados. Este no es un procedimiento publicitario (spam) sino que les informa de su estado de vez en cuando. El número de correos electrónicos que se deben enviar por lotes es de hasta 3000. El sitio web está alojado en Windows 2008 Server (VPS) y he instalado SMTP en IIS7.La mejor manera de enviar correo electrónico masivo en asp.net

Después de pasar algún tiempo leyendo sobre cómo implementar un mecanismo para enviar correos electrónicos masivos a través de asp.net, me siento un poco confundido.


Por lo que leo puedo:

  • enviarlos de forma sincrónica o asincrónica (nuevo hilo) en un bucle
  • preparan y los pusieron en directorio de recogida
  • crear un servicio de Windows que se Verificaría si hay una cola existente
  • envíelas desde el servidor sql 2008 (tengo Express).

¿Puede sugerir la mejor manera de proceder?

¿Tendré problemas con respecto a la inclusión de mi servidor en la lista negra?

¿Hay alguna manera mejor, no mencionada aquí, para implementar esto?

Gracias de antemano.

+3

No. Se encuentra con tantos riesgos para su servidor que hace esto internamente: lista negra - sí.Ejecútalo a través de un servicio legítimo: hay una tonelada disponible. – matthewnreid

Respuesta

5

En cuanto a que su servidor esté en la lista negra, en realidad no importa cuánto envíe "a la vez" es más "a quién se lo envía". Si los envía al usuario que no los quiere, y ellos lo reportan como un spammer, entonces, sin dudas, aparecerá en la lista negra de uno de los muchos sitios de la lista negra de DNS.

Asegúrate siempre de que las personas opten primero por un sistema doble de suscripción, envíes un correo electrónico, si responden "activa la cuenta", entonces puedes enviarles más correos electrónicos, si no suponen que escribieron la dirección incorrecta.

En términos de la mejor manera de procesar, siempre he encontrado que la mejor manera es escribir un pequeño servicio que se ejecute por separado del sitio. Realmente no desea enviar correos electrónicos usando el mismo hilo que el servicio IIS.

Si quiere REALMENTE optar por la forma profesional completa. Si desea implementar algún tipo de sistema de cola de mensajes (como ActiveMQ o RabbitMQ) en el que envía mensajes y los coloca en una cola, entonces debe crear un proceso de Windows para escuchar una de esas colas y cuando llega un correo electrónico. en enviarlo. De esta forma, si su procesador de correo muere, o funciona con lentitud, etc. podría abrir más procesadores, conectarlo a la misma cola y más procesos compartir el trabajo (distribución simple).

Una forma un poco menos compleja, sería usar una cola FIFO, que se haría fácilmente en una base de datos simplemente guarde los correos electrónicos en una tabla con una fecha y envíelos con SELECT TOP 10 * FROM OutgoingMail ORDER BY datestamp ASC (recuerde y use índices apropiados) luego use un servicio para simplemente enviarlos en lotes.

Asynch debe evitarse, si es posible, de IIS para algo como esto, no desea que el grupo de aplicaciones se recicle a la mitad de su trabajo.

Cuestiones relacionadas