代码之家  ›  专栏  ›  技术社区  ›  Hamish

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

  •  0
  • Hamish  · 技术社区  · 15 年前

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

    如果这是不可能的,有哪些常见的信号表明它可能会失败?

    一些场景:

    • 向站点管理员发出有关电子邮件配置错误的警告
    • 在邮件不可用的情况下为模块用户提供备用工作流
    • 绕过不抑制错误的框架邮件包装器

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

    2 回复  |  直到 15 年前
        1
  •  1
  •   Brad    15 年前

    无法以编程方式检查。大多数时候在配置错误的服务器上, mail() 看起来很成功,但消息将位于服务器上的某个队列中。

    正如cdhowie所说,即使它真的起作用了,你也可能在上游遇到其他问题。

    你所能做的就是用主题行中的某个随机键将测试电子邮件发送到你的一个服务器。在服务器上,让一些代码读取这些测试电子邮件,然后将它们添加到数据库中。生成一个简单的脚本,该脚本返回一个简单的yay/nay,无论测试电子邮件是否已成功接收。 isitthereyet.php?key=ASDFASDFASDF

    虽然这可能是你想要的,但我能想到的最好的解决办法。

        2
  •  0
  •   Klinky    15 年前

    你只想检查邮件()是否存在,这样它就不会返回未定义的函数吗?你可以用 function_exists .

    推荐文章