Php Mailer - 如果发送()错误,则继续下一封邮件

时间:2013-07-19 07:23:10

标签: php phpmailer bulk-mail

我是新手使用phpmailer发送批量邮件。 如果send()失败,则执行停止并显示错误。

有没有办法跳过错误并继续下一封电子邮件ID。 我正在使用数据库中的电子邮件ID。

3 个答案:

答案 0 :(得分:0)

您可以捕获异常机制,继续使用适当逻辑的下一个邮件

Phil发布 PHPMAiler使用Exceptions。尝试采用以下

require_once '../class.phpmailer.php';

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch

try {
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->AddAddress('whoto@otherdomain.com', 'John Doe');
  $mail->SetFrom('name@yourdomain.com', 'First Last');
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  $mail->MsgHTML(file_get_contents('contents.html'));
  $mail->AddAttachment('images/phpmailer.gif');      // attachment
  $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
  $mail->Send();
  echo "Message Sent OK\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}

答案 1 :(得分:0)

使用phplist可以使用PHP邮件程序批量邮寄或不使用 click Here了解更多

答案 2 :(得分:0)

在PHP中,您可以通过向函数添加 @ 来抑制错误显示。这通常可以防止显示错误。
根据您的情况,您可以将代码放在 try..catch 中。在 catch 部分中,检查是否已发送所有电子邮件;如果没有,继续下一个。这也意味着您需要一种方法来跟踪总电子邮件和完成的电子邮件数量。

希望这会有所帮助。