sendblaster mail library php email email-integration mailing-list massmail

php - mail - sendblaster 4



¿Cómo enviar 100.000 correos electrónicos semanalmente? (3)

¿Cómo se puede enviar un correo electrónico a 100.000 usuarios semanalmente en PHP? Esto incluye el correo a los suscriptores que utilizan los siguientes proveedores:

  • AOL
  • G-Mail
  • Hotmail
  • Yahoo

Es importante que todos los correos electrónicos se entreguen, en la medida de lo posible. Obviamente, solo enviar el correo convencionalmente no haría más que crear problemas.

¿Hay una biblioteca para PHP que simplifique esto?


Esto es lo que hice recientemente en PHP en uno de mis sistemas más grandes:

  1. El usuario ingresa el texto del boletín y selecciona los destinatarios (lo que genera una consulta para recuperar las direcciones de correo electrónico para más adelante).

  2. Agregue el texto del boletín y la consulta de destinatarios a una fila en la tabla mysql llamada * email_queue *

    • (La tabla email_queue tiene las columnas "a" "asunto" "cuerpo" "prioridad")
  3. Creé otro script, que se ejecuta cada minuto como un trabajo cron. Utiliza la clase SwiftMailer . Este script simplemente:

    • durante el horario comercial, envía todos los correos electrónicos con prioridad == 0

    • después de horas, envíe otros correos electrónicos por prioridad

Dependiendo de la configuración de los hosts, ahora puedo tener el acelerador utilizando plugins estándar de swiftmailers como antiflood y acelerador ...

$mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(50, 30));

y

$mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin( 100, Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE ));

etcétera etcétera..

Me he expandido mucho más allá de este pseudocódigo, con archivos adjuntos y muchas otras configuraciones configurables, pero funciona muy bien siempre que el servidor esté configurado correctamente para enviar correos electrónicos. (Probablemente no funcionará en hosting compartido, pero en teoría debería ...) Swiftmailer incluso tiene una configuración

$message->setReturnPath

Lo cual ahora uso para rastrear rebotes ...

¡Rastros felices! (¿Feliz correo electrónico?)


La gente ha recomendado MailChimp, que es un buen proveedor de correo electrónico masivo. Si está buscando un buen proveedor de correo electrónico transaccional, podría ayudarlo.

En los últimos 6 meses, utilizamos cuatro proveedores diferentes de SMTP con el objetivo de averiguar cuál fue el mejor.

Aquí hay un resumen de lo que encontramos ...

AuthSMTP

  • Más barato alrededor
  • Sin análisis / informes
  • Sin seguimiento de aperturas / clics
  • Tenía una ligera vacilación en algunos envíos

Matasellos

  • Muy barato, pero no tan barato como AuthSMTP
  • Hermoso cpanel pero sin seguimiento en aperturas / clics
  • Seguimiento de actividad de nivel de envío para que pueda abrir un único correo electrónico que se envió y ver cómo se veía y los datos de entrega.
  • Tengo que usar API. El envío por SMTP se presentó recientemente, pero tiene errores. Por ejemplo, notamos que las comillas (") en el asunto se eliminan.
  • No puede enviar ningún archivo adjunto que desee. Debe estar en la lista aprobada de tipos de archivos y de un tamaño determinado. (10 MB, creo)
  • Requiere una lista de nombres / direcciones.

JangoSMTP

  • Caro en relación con los demás: más de 10 veces en algunos casos
  • Cpanel feo, pero excelente seguimiento en aperturas / clics con detalles de nivel de correo electrónico
  • Tuve dudas, a veces, al enviar. En dos ocasiones, los envíos tardaron una hora en ser entregados
  • Requiere una lista de nombres / direcciones.

SendGrid

  • No es tan barato como AuthSMTP pero sigue siendo muy barato. Muchos clientes pueden existir en 200 envíos gratuitos por día.
  • Panel de control decente pero sin detalles detallados sobre el seguimiento de apertura / clic
  • Muchas opciones de API. Las opciones (abrir / hacer clic en el seguimiento, etc.) se pueden definir de forma personalizada por correo electrónico. El correo electrónico entrante (respuesta) se puede publicar en nuestro punto final HTTP.
  • Absolutamente cero vacilación en los envíos. Cada correo electrónico enviado aterrizó en la bandeja de entrada casi de inmediato.
  • Puede enviar desde cualquier nombre / dirección.

Conclusión

SendGrid fue el mejor con matasellos en segundo lugar. Nunca vimos ninguna duda en los tiempos de envío con ninguno de los dos, en algunos casos enviamos varios cientos de correos electrónicos a la vez, y ambos tienen el mejor ROI, dado un conjunto de características sólido.


Respuesta breve: si bien técnicamente es posible enviar 100k correos electrónicos cada semana, la solución más sencilla, fácil y económica es subcontratar esto a una de las compañías que se especializan en él (yo dije "más barato": no hay límite para el cantidad de tiempo de desarrollo (y, por lo tanto, de dinero) que puede incluir en esto al intentar hacer bricolaje).

Respuesta larga: si decides que quieres hacer esto tú mismo, prepárate para un mundo de dolor (después de todo, estamos hablando de correo electrónico / falla electrónica). Necesitarás:

  • contenido de correo electrónico que no sea correo no deseado (de lo contrario, se encontrará con obstáculos adicionales en cada paso, incluso con repercusiones legales)
  • además, su contenido debería ser fácil de distinguir del correo no deseado, que puede ser un poco difícil de hacer en algunos casos (escuché que cierta compañía farmacéutica tenía que abandonar el correo electrónico, ya que sus marcas son bastante comunes en los spams )
  • un servidor SMTP configurable, que no se congelará cuando eche 100k correos electrónicos en él (el servidor ascendente de su ISP no será suficiente aquí y hará que el ISP sea violentamente infeliz; usamos dos cajas dedicadas)
  • algunos contenedores de correo (por ejemplo, PhpMailer si PHP es su veneno de elección, utilizando el mail() de PHP mail() es lo suficientemente horrible por sí mismo)
  • su propia función de remitente para ejecutar en un bucle, crear los correos y pasarlos a la envoltura (tenga en cuenta que puede ejecutar en los límites de memoria de PHP si su aplicación tiene una pérdida de memoria, es posible que deba reciclar el proceso de envío periódicamente, o incluso mejor) , desacople por completo la "creación de correos electrónicos" y "enviar correos electrónicos")

Sorprendentemente, esa fue la parte fácil. La parte difícil es en realidad enviarlo:

  • algunos servidores lo prohibirán cuando envíe demasiados correos electrónicos juntos, por lo que debe barajar y mirar su cola (por ejemplo, envíe un correo a [email protected], luego tres a otros dominios, y luego otro a otra direcció[email protected]). )
  • necesita tener registros correctos de PTR, SPF, DKIM
  • manejo de tiempos de espera remotos del servidor, registros DNS mal configurados y otros comentarios de la red
  • manejo de correos electrónicos no válidos (y no, la expresión regular es la herramienta incorrecta para eso )
  • manejo de desuscripciones (muchos boletines legítimos han sido reclasificados como correo no deseado debido a que muchos usuarios frustrados que no pudieron darse de baja en un solo paso eligieron "marcar como correo no deseado"; los filtros de spam sí lo hacen, especialmente con grandes proveedores de correo electrónico)
  • manejando rebotes y rechazos ("no such mailbox [email protected]", "mailbox [email protected] full")
  • manejo de listas negras y eliminación de listas negras (seguro, no está enviando spam. Algunos destinatarios no estarán tan seguros, con una lista tan grande, sucederá a veces, sin importar las precauciones que tome. Algunas personas (por ejemplo, su no tan) -competentes escrupulosos) incluso pueden llegar tan lejos como para reportar falsamente sus correos electrónicos como spam. En promedio , lleva semanas eliminarse de una lista negra).

Y para colmo, tendrá que administrar la parte legal de la misma (varias leyes federales, estatales y locales, e incluso diferentes enredos de leyes una vez que envíe fuera de los EE. UU. (Nota: no tiene forma de averiguar si Joe @ hotmail.com vive en el suroeste de Elbonia, el país con las leyes antispam más draconianas del mundo)).

Estoy bastante seguro de haberme perdido algunas cabezas de esta hidra. ¿Todavía estás seguro de que quieres hacerlo tú mismo? Si es así, habrá otra ola, esta vez solo los molestos problemas inherentes al envío de un correo electrónico. (Verá, SMTP es un protocolo de almacenamiento y reenvío, lo que significa que su correo electrónico se barajará en muchos servidores SMTP de Internet, con la esperanza de que el siguiente se acerque un poco más al destinatario final. el correo electrónico se envía a un servidor SMTP, que lo coloca en su lista de espera; cuando llegue el momento, lo reenviará a un servidor SMTP diferente, hasta que llegue al servidor SMTP para el dominio dado. Este avance podría ocurrir inmediatamente , o en unos minutos, u horas, o días, o nunca.) Por lo tanto, verá los siguientes problemas, la mayoría de los cuales podrían ocurrir tanto en la ruta como en el destino:

  • los servidores SMTP remotos no quieren hablar con su servidor SMTP
  • sus correos electrónicos se marcan como spam ( <blink> no es su amigo aquí, ni <font color=...> )
  • sus correos se entregan días, incluso semanas tarde (contrario a la opinión popular, SMTP está diseñado para hacer un mejor esfuerzo para entregar el mensaje en algún momento en el futuro - no para entregarlo ahora)
  • sus correos no se entregan (ya enviados desde el servidor de correo electrónico en el salto n. ° 4, aún no enviados desde el servidor en el n. ° 5, el servidor que actualmente contiene el mensaje falla, los datos se pierden)
  • tus correos son destrozados por algún servidor de braindead en camino (este es algo que se puede solucionar con codificación base64, pero luego el tamaño aumenta y el correo electrónico parece más sospechoso)
  • sus correos electrónicos se entregan y los destinatarios parecen no quererlos ("Estoy seguro de que no me inscribí para esto, recuerdo exactamente lo que hice hace un año" (por supuesto que sí, señor))
  • usuarios con varias versiones de Microsoft Outlook y su manejo especial del correo de Internet
  • modo de aprendiz del asistente (un ciclo de retroalimentación positiva que se refuerza automáticamente; en otras palabras, correos electrónicos automatizados como respuestas a correos electrónicos automáticos como respuestas a ...; realmente no desea ser el que lo active, ya que te enojarías con la mitad de internet contigo mismo)

y será tu trabajo solucionarlo y resolverlo (sugerencia: no se puede, en su mayoría). Las personas que manejan un negocio de correo masivo legítimo saben que al final no se puede resolver, y que tampoco pueden resolverlo, y tienen los motivos bien investigados, documentados y delineados (tal vez incluso como una presentación en Powerpoint). - completo con sonidos y transiciones geniales - que tus jefes pueden entender), ya que tuvieron que explicar esto un millón de veces antes. Además, para los problemas que son realmente solucionables, saben muy bien cómo resolverlos.

Si, después de todo esto, no te desanimas y aún quieres hacerlo, sigue adelante: incluso es posible que encuentres una mejor manera de hacerlo. Solo sé que el camino a seguir no será fácil: enviar un correo electrónico es trivial, conseguir que se entregue es difícil.