ループで PHPMailer を介して電子メールを送信していますが、何らかの理由で受信サーバーによって受け入れられないアドレスに送信すると、PHPMailer は例外をスローし、スクリプトは終了します。スクリプトを続行して、この不適切なアドレスを別の方法で処理したいと考えています。
PHPMailer が例外で停止するのを回避する方法についてのアイデアはありますか?
try
{
// prep
$mail->IsSMTP();
$mail->SMTPKeepAlive = true;
$mail->SMTPDebug = 0;
$mail->SetFrom(email_reply_adress, email_from_name);
$mail->Host = email_smtp_host;
$mail->SMTPAuth = true;
$mail->Username = email_username;
$mail->Password = email_password;
$mail->IsHTML(true);
$mail->AddReplyTo(email_reply_adress, email_from_name);
//
$query = "SELECT * FROM table WHERE sent = '0'";
$result = @mysql_query($query);
while($row = @mysql_fetch_array($result))
{
// receiver
$mail->AddAddress($row['email']);
// subject
$mail->Subject = utf8_decode($row['subject']);
// build mail
$mail->Body = utf8_decode(stripslashes($row['content']));
// send it
if($mail->Send())
{
// stats
$sent = "UPDATE table SET sentdate = now(), sent = '1' WHERE id = '".$row['id']."'";
mysql_query($sent);
}
// clean up lists
$mail->ClearAllRecipients();
}
}
catch(phpmailerException $e)
{
echo $e->errorMessage(); //Pretty error messages from PHPMailer
}