使用Zend_Mail时如何验证邮件是否已发送?

Gar*_*hby 20 php email verification zend-framework

我正在使用Zend框架发送邮件.一旦配置完成并且代码写入,所有内容归结为一个调用:

$Mail->send($Transport)
Run Code Online (Sandbox Code Playgroud)

如何检查此邮件是否已正确发送?我在某地读过Zend Mail引发异常,但其他人说这有时并非如此.

使用Zend_Mail时,确保邮件正确发送的防弹程序化方法是什么?

编辑:当我的意思是发送,我的意思是发送到SMTP服务器.

Ste*_*rig 35

Zend_Mail如果发送过程发生错误,通常会抛出异常 - 但这很大程度上取决于Zend_Mail_Transport_*使用情况.

你有两个选择:

  • Zend_Mail_Transport_Sendmail(默认传输)依赖mail().如果mail()返回false,则Zend_Mail_Transport_Sendmail抛出Zend_Mail_Transport_Exception(无法发送邮件).返回值本身不是很可靠.这是手册中关于返回值的说明:

    如果邮件成功接受传递,则返回TRUE,否则返回FALSE.

    重要的是要注意,仅仅因为邮件被接受传递,并不意味着邮件实际上将到达预定目的地.

  • Zend_Mail_Transport_Smtp使用封装的SMTP协议发送电子邮件Zend_Mail_Protocol_Smtp.在这种情况下,Zend_Mail_Protocol_Exception只要违反SMTP协议(发送邮件而不提供发件人地址)或STMP服务器报告错误或连接超时,您就会得到一个.

    因此,如果与STMP服务器通信时没有抛出异常,您可以确定远程服务器至少接受了您的电子邮件.