Enviando múltiples correos electrónicos con PHPmailer

Edit: olvidé que había creado elSendMail(); funcionarme, por lo que la explicación no menciona al principio lo que hace.

Estoy teniendo problemas con PHPMailer (https://github.com/PHPMailer/PHPMailer) al intentar enviar dos correos electrónicos, uno directamente después del otro.

El script está casi completamente 'listo para usar', con solo algunas modificaciones, como unaforeach bucle para permitir múltiples direcciones, y todo sigue funcionando perfectamente.

Sin embargo, si intento llamar a más de una instancia deSendMail(); Me sale el mensaje de error:

Fatal error: Cannot override final method Exception::__clone() in .... online 0

Anteriormente estaba usando el in-builtmail(); función, que me permitió usarla tantas veces como me gustó en una sucesión rápida, pero no parece ser tan simple con PHPmailer:

$to = [email protected];
$to2 = [email protected]';
$headers = 'php headers etc';
$subject = 'generic subject';
$message = 'generic message';
mail($to, $subject, $message, $headers);
mail($to2, $subject, $message, $headers);

Lo anterior daría lugar a que se envíen dos correos electrónicos idénticos a diferentes personas, sin embargo, no puedo replicar fácilmente esta funcionalidad con PHPmailer.

¿Hay alguna forma de apilar estas solicitudes para que pueda enviar correos electrónicos sucesivos sin que falle? Obligar a que el script espere hasta que se envíe el primer correo electrónico también sería aceptable, aunque no preferencial.

Como mencioné, sé que funciona cuando solo se llama una instancia, pero parece que no puedo reutilizar la función.

No he incluido el código fuente, aunque está todo disponible en el enlace proporcionado anteriormente.

Gracias por adelantado

Editar según lo solicitado

// First Email
$to = array(
'[email protected]',
 '[email protected]',);
$subject = "Subject";
$message = $message_start.$message_ONE.$message_end;

sendMail();

// Second Email
$to = array(
'[email protected]',
 '[email protected]',);
$subject = "Subject";
$message = $message_start.$message_TWO.$message_end;

sendMail();

Lo anterior es cómo quiero que funcione, ya que funcionaría conmail();. El primer correo electrónico funcionará bien, el segundo no.

Código SendMail ()

Esto es del sitio web PHPmailer, y es lo que se define comoSendMail();. La única diferencia con el ejemplo es el bucle paraAddAddress, y la inclusión de$to como una variable global.

$mail = new PHPMailer();

$mail->IsSMTP();                                      // set mailer to use SMTP
$mail->Host = "smtp1.example.com;smtp2.example.com";  // specify main and backup server
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "jswan";  // SMTP username
$mail->Password = "secret"; // SMTP password

$mail->From = "[email protected]";
$mail->FromName = "Mailer";
foreach($to as $to_add){
$mail->AddAddress($to_add);                  // name is optional
}
$mail->AddReplyTo("[email protected]", "Information");

$mail->WordWrap = 50;                                 // set word wrap to 50 characters
$mail->AddAttachment("/var/tmp/file.tar.gz");         // add attachments
$mail->AddAttachment("/tmp/image.jpg", "new.jpg");    // optional name
$mail->IsHTML(true);                                  // set email format to HTML

$mail->Subject = "Here is the subject";
$mail->Body    = "This is the HTML message body <b>in bold!</b>";
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";

if(!$mail->Send())
{
   echo "Message could not be sent. <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}

echo "Message has been sent";

Respuestas a la pregunta(1)

Su respuesta a la pregunta