.net - que - mail masivo
Crear un remitente de correo masivo (3)
Quiero crear una aplicación que permita a mis clientes enviar información de marketing por correo electrónico. Esta será una herramienta cuidadosamente monitoreada, utilizada solo para el envío de correos masivos legítimos. Tendrá todas las funciones necesarias para cancelar la suscripción, etc.
La solución se compilará utilizando VB.NET.
Mi pregunta se refiere a la mejor manera de enviar realmente los correos electrónicos. Tenemos un servidor SMTP en nuestro centro de datos que podemos usar. Estoy pensando que podríamos escribir algún tipo de servicio de ventanas multiproceso para supervisar una base de datos de correos electrónicos para enviar, y luego realizar llamadas a la API System.Net.Mail para enviar a través de este servidor.
¿Esto me va a dar el nivel de rendimiento que necesito para enviar correos a miles de usuarios en un marco de tiempo razonable?
Si no, ¿debería estar mirando hacer cosas en un "nivel inferior", realizar búsquedas DNS en un hilo, enviar directamente al servidor relevante en el puerto 25 en otro hilo, etc.?
¡Cualquier indicador sería apreciada!
Realmente no es una respuesta, sino una actualización para cualquier persona interesada ... Actualmente estoy buscando un producto llamado ActiveMail de ActiveUp .
Esto parece ser un MTA (realizando sus propias búsquedas MX y enviando el correo directamente), y viene con una aplicación de cola multiproceso.
Creo que no es tan difícil lanzar algo así por tu cuenta. Tardaría un día o más en construir. Pero deberías estar mucho mejor usando algo existente.
Aún así, algunas cosas que encontré importantes al hacer Bulk-Email:
No use su propio SMTP para enviarlos.
Busque las entradas MX para sus destinatarios y conecte el SMTPClient a su SMTP, esto le brinda la ventaja de que obtiene un mensaje de error instantáneo cuando no se encuentra el buzón o si algo está mal y no acentúa su propio servidor.
También hubo un pequeño error en SmtpClient que me dio problemas porque el nombre de host no es un nombre de dominio completamente calificado (como lo solicitan las especificaciones SMTP) sino el nombre de la máquina (y ese es un campo interno dentro de SmtpClient). Algunos servidores SMTP lo toman en serio y quieren un nombre de dominio en su lugar, así que terminé configurando ese campo con reflejo en un FQDN. (Esperemos que esto haya cambiado desde entonces)
La pregunta no es lo suficientemente precisa, pero intentaré responderla de todos modos. Hay algunos factores que limitan tus opciones. La mejor "manera" depende de tus circunstancias. ¿En qué fecha límite trabajas?
La implementación de un sistema de envío de correo grande, de bajo nivel y con varios subprocesos tomará mucho tiempo en comparación con la otra opción que usted mencionó. Claro, escribir todo desde cero es mucho más elegante que usar el servidor SMTP y la biblioteca .NET para enviar los correos.
También está la cuestión del ancho de banda entre los diferentes datos. ¿La aplicación .NET y la base de datos se ejecutarán en el mismo servidor que el SMTP? De lo contrario, ¿cómo limitará el flujo de banda el máximo de correos enviados por segundo?
Personalmente soy un gran fan de mantenerlo simple. Reutilizar el software disponible es una decisión inteligente si el tiempo corre. ¿Con qué frecuencia enviará miles de correos? Ese intervalo definirá si el marco de tiempo es sensible o no. ¿Es tan pequeño que podría terminar con el sistema trabajando en el primer "lote" cuando otra versión esté lista para ser enviada?
Primero, obtenga un componente para hacer el trabajo pesado. Yo recomendaría: aspnetmail
Luego, configurar el bulkmailing es tan fácil como descargar un código de ejemplo.
WebMailer: envía miles de correos electrónicos desde una página web sin tiempo de espera.
El mismo proveedor también proporciona comprobadores de registros mx / inspectores de correo de rebote, etc. Esta solución no es gratuita, pero el tiempo que ahorre y no persiga fallas / inconsistencias en el componente de correo estándar hará que esto valga la pena.
Ah, y si quiere un envío masivo de correo que se encuentra en el escritorio que también se suministra: http://www.aspnetemail.com/rapidmailer/