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 中编写邮件服务器是没有意义的,这几乎就是你所提议的。