PHPMailer 异常另存为 .eml
PHPMailer on exception save as .eml
我做了一个发送电子邮件的代码,但是 SMTP 连接的参数需要用户设置,所以我在代码中测试检查异常。
我怀疑是否有办法创建邮件并将其保存为 .EML 格式,使用 PHPMailer 稍后再试?
try
{
if (!$mail->send())
{
$this->setErrorDescription($mail->ErrorInfo);
toLogAdmin(__CLASS__ . '.' . __FUNCTION__ . ' => Erro ao enviar a mensagem de teste de conexão usando ' . $server_name . ' na porta ' . $server_port . ' e usuario ' . $username . ', erro : ' . $mail->ErrorInfo, true);
return false;
}
}
catch(Exception $exception)
{
$this->setErrorDescription($mail->ErrorInfo);
toLogAdmin(__CLASS__ . '.' . __FUNCTION__ . ' => Excecao ao enviar a mensagem de teste de conexao de email ' . $server_name . ' na porta ' . $server_port . ' e usuario ' . $username . ', erro : ' . $mail->ErrorInfo, true);
return false;
}
您可以通过调用 getSentMIMEMessage()
获得完整的 RFC822 消息,但我建议您不要这样做。要么保存你所有的电子邮件参数,这样你就可以再次创建邮件,或者更好的是,安装一个本地邮件服务器并通过它发送,这将负责重试,以及邮件服务器的所有其他事情。在 PHP 中编写邮件服务器是没有意义的,这几乎就是你所提议的。
我做了一个发送电子邮件的代码,但是 SMTP 连接的参数需要用户设置,所以我在代码中测试检查异常。
我怀疑是否有办法创建邮件并将其保存为 .EML 格式,使用 PHPMailer 稍后再试?
try
{
if (!$mail->send())
{
$this->setErrorDescription($mail->ErrorInfo);
toLogAdmin(__CLASS__ . '.' . __FUNCTION__ . ' => Erro ao enviar a mensagem de teste de conexão usando ' . $server_name . ' na porta ' . $server_port . ' e usuario ' . $username . ', erro : ' . $mail->ErrorInfo, true);
return false;
}
}
catch(Exception $exception)
{
$this->setErrorDescription($mail->ErrorInfo);
toLogAdmin(__CLASS__ . '.' . __FUNCTION__ . ' => Excecao ao enviar a mensagem de teste de conexao de email ' . $server_name . ' na porta ' . $server_port . ' e usuario ' . $username . ', erro : ' . $mail->ErrorInfo, true);
return false;
}
您可以通过调用 getSentMIMEMessage()
获得完整的 RFC822 消息,但我建议您不要这样做。要么保存你所有的电子邮件参数,这样你就可以再次创建邮件,或者更好的是,安装一个本地邮件服务器并通过它发送,这将负责重试,以及邮件服务器的所有其他事情。在 PHP 中编写邮件服务器是没有意义的,这几乎就是你所提议的。