Os cuento un poco el problema que tengo haber si sabeis como puedo hacerlo.
He desarrollado un newsletter en php con apoyo de MySQL, el programa usa la clase Swift Mailer y la opción que tiene esta para enviar newletter (http://www.swiftmailer.org/wikidocs/v3/sending/batch)
Lo que pasa es que cuando eran pocos no pasaba nada, lo enviaba sin problemas, el problema es que ahora que hay unos 3000 no me deja enviarles todos a la vez y se me bloquea el programa.
Mi duda es si hay alguna forma para poder dividir el enviarles de forma automática en varias veces, por ejemplo en grupos de 100 emails.
El código que uso es el siguiente:
Código PHP:
//Incluimos la librería Swift
require_once "lib/Swift.php";
require_once "lib/Swift/Connection/SMTP.php";
//Propiedades para enviar por SMTP
$smtp =& new Swift_Connection_SMTP("mail.dominio.com", 587);
$smtp->setUsername("[email protected]");
$smtp->setpassword("contraseña");
//Propiedades de la clase
$swift =& new Swift($smtp);
$message =& new Swift_Message($asunto, $cuerpo);
$message->setContentType("text/html");
//Creamos la lista de recepción
$recipients =& new Swift_RecipientList();
//Enviamos los emails
$resultadoemails = mysql_query("SELECT email FROM newsletter", $conexion);
while($newsletter = mysql_fetch_array($resultadoemails)){
//Añadimos un destinatario
$recipients->addTo($newsletter['email']);
}
//Otra forma de enviar el newsletter
$batch =& new Swift_BatchMailer($swift);
$batch->setMaxTries(2);
$batch->setMaxSuccessiveFailures(3);
if ($num_sent = $batch->send($message, $recipients, new Swift_Address("[email protected]", "Nombre"))){
echo "Enviado";
}
//Desconectamos y vaciamos
$batch->flushFailedRecipients();
Muchas Gracias