Enviando vários emails com o PHPmailer

Edit: esqueci que tinha criado oSendMail(); eu mesmo, e é por isso que a explicação não menciona inicialmente o que faz.

Estou tendo problemas com o PHPMailer (https://github.com/PHPMailer/PHPMailer) ao tentar enviar dois e-mails, um diretamente após o outro.

O script é quase completamente "pronto para uso", com apenas algumas modificações, como umforeach loop para permitir vários endereços, e tudo ainda funciona perfeitamente.

No entanto, se eu tentar chamar mais de uma instância deSendMail(); Eu recebo a mensagem de erro:

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

Anteriormente, eu estava usando omail(); , que me permitiu usá-lo quantas vezes eu quisesse em rápida sucessão, mas não parece tão simples com o 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);

O exemplo acima resultaria em dois emails idênticos sendo enviados para pessoas diferentes, no entanto, não consigo replicar facilmente essa funcionalidade com o PHPmailer.

Existe uma maneira de empilhar essas solicitações para que eu possa enviar emails sucessivos sem que falhem? Forçar o script a esperar até que o primeiro email seja enviado também seria aceitável, embora não seja preferencial.

Como mencionei, sei que funciona quando apenas uma instância é chamada, mas não consigo reutilizar a função.

Não incluí o código-fonte, embora esteja tudo disponível no link fornecido acima.

desde já, obrigado

Editar conforme 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();

A descrição acima é como eu quero que isso funcione, como funcionaria commail();. O primeiro email funcionará bem, o segundo não.

Código SendMail ()

Isto é do site PHPmailer e é o que é definido comoSendMail();. A única diferença do exemplo é o loop paraAddAddresse a inclusão de$to como uma variável 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";

questionAnswers(1)

yourAnswerToTheQuestion