por imagen enviar correo con php email bulk massmail

imagen - enviar correo php



Envío de correo electrónico masivo con PHP (11)

Actualmente estoy escribiendo un blog de música. El administrador publica un nuevo artículo cada 2-3 días. Una vez que el administrador publique un artículo, se enviará un correo electrónico masivo a aproximadamente 5000 suscriptores de inmediato.

¿Cuál es la mejor manera de implementar la función de correo masivo?

Funciona la siguiente función?

function massmail() { $content = ''...''; foreach ($recipients as $r) { $_content = $content . ''<img src="http://xxx/trackOpenRate.php?id=''.$r.''">''; mail($r, ''subject'', $_content); } }

Otra pregunta: si todos los 5000 suscriptores están usando Yahoo Mail, ¿Yahoo lo tratará como un ataque DDOS y bloqueará la dirección IP de mi servidor SMTP?


¿Por qué molestarse en programarse? Es un blog, solo use Google Feedburner que automáticamente envía actualizaciones a los suscriptores por correo electrónico.

Es gratis y usa la infraestructura de Google . No puede ser mejor que eso. Lo uso para algunos de mis sitios / blogs y funciona maravillosamente.

Lo malo es que parece que no se desarrolla activamente y ya no se admite . Sugiero que frunzas el ceño a una lista de correo electrónico comercial si eres serio acerca de tu negocio.


¿Por qué no prefieres usar phplist ? También está construido sobre PHP Mailer y muchos líderes de la industria lo están usando. Lo he usado un par de veces para enviar correos masivos a mis clientes. Lo bueno de phplist es que puedes regular tus mensajes en un nivel de dominio más un límite de tiempo. Para obtener una lista completa de características, consulte: http://www.phplist.com/details

Lo que también hemos hecho con un par de sistemas internos de captura que tenemos es enviar nuestra base de usuarios a la lista de mailling y luego tener una entrada cron activando un correo determinado cada día. Las posibilidades son infinitas, ¡eso es lo increíble de la fuente abierta!


En primer lugar, usar la función mail () que viene con PHP no es una solución óptima. Se marca fácilmente como spam y debe configurar el encabezado para asegurarse de que está enviando correos electrónicos HTML correctamente. En cuanto a si el fragmento de código funcionará, lo haría, pero dudo que obtendrá código HTML dentro de él correctamente sin especificar encabezados adicionales

Le sugiero que eche un vistazo a SwiftMailer , que tiene soporte HTML, soporte para diferentes tipos de mime y autenticación SMTP (que es menos probable que marque su correo como spam).


Esto es un consejo, no una respuesta: usted está mucho, mucho mejor usando un software dedicado de listas de correo. mailman es un ejemplo muy utilizado, pero algo tan simple como mlmmj puede ser suficiente. Enviar correos masivos es en realidad una tarea más difícil de lo que realmente parece ser. No solo tiene que enviar los correos, sino que también debe hacer un seguimiento de las direcciones "muertas" para evitar que su correo, o peor, su servidor de correo sea marcado como correo no deseado. Tienes que manejar a las personas que se dan de baja por la misma razón.

Puede implementar estas cosas usted mismo, pero particularmente el manejo de rebotes es difícil y el trabajo no es gratificante. Usar un administrador de lista de correos hará las cosas mucho más fáciles.

En cuanto a cómo hacer que tu correo sea apetecible para Yahoo, ese es otro asunto completamente diferente. Para todas sus fallas, parecen poner un gran stock en SPF y DomainKey. Probablemente tendrá que implementarlos, lo que requerirá la cooperación de su administrador de servidor de correo.


Insertaría todos los correos electrónicos en una base de datos (como una cola), luego los procesaría de uno en uno como lo hizo en su código (si desea usar swiftmailer o phpmailer, etc., también puede hacerlo).

Después de enviar cada correo, actualice la base de datos para registrar la fecha / hora en que se envió.

Al ponerlos en la base de datos primero tiene

  1. un registro de a quién lo envió
  2. si el script se agota o falla y debe ejecutarlo nuevamente, no terminará enviando el mismo correo electrónico a las personas dos veces
  3. puede ejecutar el proceso de envío desde un trabajo cron y hacer un lote a la vez, para que su servidor de correo no se vea abrumado y realizar un seguimiento de lo que se ha enviado

Tenga en cuenta cómo automatizar los correos electrónicos devueltos o no válidos para que se eliminen automáticamente de su lista.

Si envía tantos correos electrónicos, seguramente obtendrá algunos rebotes.


Puede considerar usar CRON para ese tipo de operación. Enviar correo masivo a la vez no es bueno, puede detectarse como spam, ddos, bloquear su servidor, etc.

Entonces CRON podría ser una gran solución, envíe 100 correos a la vez, luego espere unos minutos, los próximos 100, etc.


Puedes usar swiftmailer para eso. Al usar el proceso por lotes.

<?php $message = Swift_Message::newInstance() ->setSubject(''Let/'s get together today.'') ->setFrom(array(''[email protected]'' => ''From Me'')) ->setBody(''Here is the message itself'') ->addPart(''<b>Test message being sent!!</b>'', ''text/html''); $data = mysql_query(''SELECT first, last, email FROM users WHERE is_active=1'') or die(mysql_error()); while($row = mysql_fetch_assoc($data)) { $message->addTo($row[''email''], $row[''first''] . '' '' . $row[''last'']); } $message->batchSend(); ?>


También echa un vistazo a la clase PHPmailer. PHPMailer



Ya lo hice usando Lotus Notus y PHP . Esta solución funciona si tiene acceso al servidor de correo o puede solicitarle algo al administrador del mail server :

1) Cree un grupo en el mail server : "Departamento de ventas".
2) Asigne al group las cuentas que necesita para estar en el grupo.
3) Asigne una dirección de internet al grupo: [email protected].
4) Cree su script PHP usando la función de correo:
$ to = "[email protected]";
correo ($ a, $ asunto, $ mensaje, $ encabezados);

Me funcionó y todas las cuentas incluidas en el grupo reciben el correo.

Lo mejor de las suertes


No envíe correos electrónicos a 5.000 personas con las herramientas PHP estándar. La mayoría de los PSI te prohibirán en segundos y nunca lo sabrán. Debería utilizar algún software de listas de correo o un Proveedor de servicios de correo electrónico para esto.