我有一个循环播放的邮件程序脚本,处理来自我服务器的外发电子邮件。偶尔它会挂起以下错误。
PHP Fatal error: Uncaught exception 'phpmailerException' with message 'SMTP Error: Data not accepted.'
这会导致我的脚本在消息提醒完成之前死亡。
以下是启动电子邮件的代码。
$message = new \PHPMailer(true);
$message -> IsSMTP();
try
{
$message -> SMTPAuth = true;
$message -> Host = Config::HOST;
$message -> Port = Config::PORT;
$message -> Username = $account;
$message -> Password = Config::PASS;
$message -> AddReplyTo($account, Config::NAME);
$message -> SetFrom($account, Config::NAME);
$message -> AddAddress($recipient[0], $recipient[1]." ".$recipient[2]);
$message -> Subject = $recipient,$this->subject;
$message -> AltBody = 'Please enable HTML viewing in order to view this message. Thank you.';
$message -> MsgHTML($recipient,$this->body);
if($attachment !== false)
$message->AddAttachment($attachment);
$message -> Send();
}
catch (phpmailerException $e)
{
return $error -> errorMessage();
}
catch (Exception $e)
{
return $error -> getMessage();
}
我似乎没有抓住异常。我怎样才能优雅地从中恢复过来?
修改
这是一个命名空间问题,如下所示。
答案 0 :(得分:1)
很可能是命名空间错误 - 最错误的错误。
catch (\phpmailerException $e)