代码之家  ›  专栏  ›  技术社区  ›  Gary Willoughby

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

  •  20
  • Gary Willoughby  · 技术社区  · 16 年前

    我正在使用Zend框架发送邮件。配置完成并编写代码后,一切都归结为一个调用:

    $Mail->send($Transport)
    

    我如何检查此邮件是否已正确发送?我在某个地方读到Zend Mail抛出了一个异常,但其他人说有时情况并非如此。

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

    2 回复  |  直到 16 年前
        1
  •  35
  •   Stefan Gehrig    16 年前

    Zend_Mail 如果发送过程中出现问题,将抛出异常,但这在很大程度上取决于 Zend_Mail_Transport_* 被使用。

    您在这里有两个选择:

    • Zend_Mail_Transport_Sendmail mail() .如果 false Zend_Mail_运输_发送邮件 扔了一个 Zend_Mail_Transport_Exception 无法发送邮件 ).返回值本身不是很可靠。这是手册中关于返回值的说明:

      如果邮件已成功接受投递,则返回TRUE,否则返回FALSE。

    • Zend_Mail_Transport_Smtp 使用封装在中的SMTP协议发送电子邮件 Zend_Mail_Protocol_Smtp 在这种情况下,你会得到一个 Zend_Mail_Protocol_Exception 每当有东西违反SMTP协议(例如在不提供发件人地址的情况下发送邮件)或STMP服务器报告错误或连接超时时。

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

        2
  •  0
  •   TomáÅ¡ Fejfar    16 年前

    我想确保邮件已送达的唯一方法是在邮件中插入一个确认码链接,并让用户点击它。

    推荐文章