在不调用邮件的情况下测试PHP邮件功能

时间:2010-11-21 07:06:33

标签: php email

除了实际尝试发送包含mail()的电子邮件并检查失败结果的返回值之外,是否可以“检测”邮件是否有效?

如果不可能,那么常见的迹象表明它可能会失败?

有些情况:

  • 向网站管理员发出有关电子邮件配置错误的警告
  • 为没有邮件的模块用户提供备用工作流程
  • 了解不会出现错误的框架邮件包装

编辑:一些澄清 - 我不是要测试未报告的错误(上游传递失败,或PHP从mail()返回true的任何条件)。基本上我正在寻找一个或多个简单的测试,这些测试可以纯粹用PHP(或PHP的系统调用)执行,至少会给你一个名为mail()的抬头是不安全的。

2 个答案:

答案 0 :(得分:1)

无法以编程方式检查。大多数情况下,配置错误的服务器mail()似乎会成功,但邮件将位于服务器某处的队列中。

正如cdhowie所说,即使它确实有效,你也可能在上游遇到其他问题。

您可以做的是使用主题行中的某种随机密钥将测试电子邮件发送到您的某个服务器。在您的服务器上,让一些代码读取这些测试电子邮件,然后将它们添加到数据库中。构建一个简单的脚本,无论是否成功收到测试电子邮件,都会返回一个简单的yay / nay。 isitthereyet.php?key=ASDFASDFASDF

尽管你想要什么,但这可能是过度杀伤,但这是我能想到的最好的解决方案。

答案 1 :(得分:0)

您是否只想检查mail()是否存在以便它不返回未定义的函数?您可以使用function_exists