如何捕获由 mail() 引起的错误?

2024-04-16

有谁知道如何在php中捕获邮件错误(发送电子邮件时显示错误,该错误是由邮件服务器关闭引起的)?

由于电子邮件服务器关闭引起的错误如下:


这是你能做的最好的事情:

if (!mail(...)) {
   // Reschedule for later try or panic appropriately!
}

http://php.net/manual/en/function.mail.php http://php.net/manual/en/function.mail.php

mail()回报TRUE如果邮件已成功接受投递,FALSE否则。

请务必注意,邮件被接受投递并不意味着邮件实际上会到达预期目的地。

如果需要抑制警告,可以使用:

if (!@mail(...))

但使用时要小心@ http://www.php.net/manual/en/language.operators.errorcontrol.php操作员没有适当检查某件事是否成功。


If mail()错误是不可抑制的(很奇怪,但现在无法测试),您可以:

a) 暂时关闭错误:

$errLevel = error_reporting(E_ALL ^ E_NOTICE);  // suppress NOTICEs
mail(...);
error_reporting($errLevel);  // restore old error levels

b)按照建议使用不同的邮件程序fire https://stackoverflow.com/questions/2323463/how-can-i-catch-an-error-caused-by-mail/2324857#2324857 and Mike https://stackoverflow.com/questions/2323463/how-can-i-catch-an-error-caused-by-mail/2323558#2323558.

If mail()事实证明太脆弱和不灵活,我会研究b)。关闭错误会使调试变得更加困难,并且通常不好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何捕获由 mail() 引起的错误? 的相关文章

  • cron 作业或 PHP 调度程序

    我使用 MYSQL 作为我的数据库 PHP 作为我的编程语言 我想运行一个 cron 作业 该作业将运行直到当前系统日期与我的数据库表中名为 PROJECT 的 截止日期 日期 列匹配 一旦日期相同的是 必须运行更新查询 这会将状态 项目表
  • 将订单总重量添加到 WooCommerce 新订单电子邮件通知

    是否可以在 WooCommerce 新订单 电子邮件通知 针对管理员 中显示订单的总重量 这是挂钩在 woocommerce email after order table 操作挂钩中的自定义函数 它将在 新订单 电子邮件通知中显示总重量
  • 获取 png 图像的像素的 alpha 值?

    我正在使用以下代码 img imagecreatefrompng image png col imagecolorat img x y alpha col gt gt 24 0x7F 但 alpha 值始终为 127 即使像素位于 x y
  • 获取完整的 url,包括哈希后的查询字符串

    如何获得完整URL包括后面的字符串参数hash tag 我试着回应 url SERVER REQUEST URI echo url 之后的字符串hash tag不会读 佩卡的评论应该是一个答案 hash标签后面的字符串参数不发送到服务器 它
  • 动态下拉框?

    我有一个名为类别的数据库表 如下所示 我正在尝试做一个动态下拉框 索引脚本显示为
  • 从 php 脚本返回 JSON 对象

    我正在做一个AJAXGET使用 jQuery 向 PHP 文件发出请求 我希望 PHP 脚本返回一个 JSON 对象 但是目前它返回一个 JSON 字符串 我意识到我可以使用JSON parse然而 在 jQuery 代码中 我对 API
  • Gearman 工作状态问题

    我有一台 Gearman 服务器正在运行一个需要几分钟才能完成的进程 我正在运行一个进度条来显示完成情况 并尝试使用 Gearman PHP 扩展和 jobStatus 函数获取进度条的百分比 该作业肯定处于活动状态并已找到 因为前两个字段
  • Symfony2 - 扩展 RememberMe 成功处理程序

    我想在某人刚刚使用 Symfony2 中的 记住我 功能登录后执行一个小的 PHP 操作 我已经看到了这一点 但不知道如何扩展它 http api symfony com 2 3 Symfony Component Security Htt
  • Laravel 中的魔法方法

    所以我最近意识到 而不是使用 users User all return view home gt with users users 你有能力做到 return view home gt withUsers users 我相信这些被称为 神
  • 本地化 html 文档(事后看来)

    我正在用 PHP 构建一个 Web 应用程序 我已经决定 在整个过程中 以不同的语言提供该应用程序 我的问题是这样的 我不想费力地浏览模板文件中的所有 HTMl 代码来查找需要用动态生成的 lang 变量替换的 单词 有没有一个工具可以突出
  • PHP 警告:在 php 7.3 中使用 password_hash() 时使用未定义的常量 PASSWORD_ARGON2ID

    我最近通过 Plesk 的 Web GUI 安装了 PHP 7 3 6 用于 Web 应用程序的开发副本 因为我打算将生产环境从 php 7 0 更新到 7 3 我决定借此机会将密码哈希从 PBKDF2 升级到 Argon2ID 因为 PH
  • 安全灵活的跨域会话

    我有一个问题希望你能帮忙解决 假设我在一家名为 Blammo 的假设公司工作 我们有一个名为 Log 的假设产品 我正在尝试建立一个系统 人们可以登录 logfromblammo com 并订购我们的一些产品 然后当他们准备好购买时 前往
  • Symfony 从控制器设置块内容

    有没有办法在 Symfony 的控制器中设置模板块内容 有没有办法在控制器中执行类似的操作 this gt get templating gt setBlockContent page title page title 我需要动态设置页面标
  • PHP - 外部类/库可以从 apache 访问,但不能从 phpunit 访问

    我在我的 Web 应用程序中使用 ZeroMQ 套接字库 我已经配置了 php ini 以便 Apache 可以使用 ZMQ 但我不知道 phpunit 如何使用它 phpunit 不使用与 apache 使用相同的 php ini 吗 在
  • 如何在 CSV 文件中插入新行?

    我正在创建一个系统 其中涉及创建用于错误记录的 CSV 我当前的代码成功创建了一个具有唯一名称的新文件 然后将现有数据 来自数组 添加到 CSV 中 我遇到的问题是在文件中添加新行 这是维持正确结构所必需的 我现有的代码 current f
  • 如何将 UTC 日期时间转换为另一个时区?

    我怎样才能转换这样的日期 2012 07 16 01 00 00 00 它在UTC 00 00时区 到UTC 04 00时区 确保正确处理夏令时 Use DateTime http php net manual en class datet
  • 使用 Apache Benchmark 测试 PHP 项目的性能?

    如何使用 Apache Benchmark 测试 PHP 应用程序的性能 我的环境是 Ubuntu Linux 有我可以安装的软件包吗 如果您安装了 Apache 2 则已经安装了 Apache Benchmark 看man ab关于如何使
  • 如何从 laravel 中给定的 lat long 获取附近的法院?

    我想在雄辩的 ORM 中给定的 lat long 的基础上获得篮球场 我试图得到这个 但在这里我得到了这个错误 Call to undefined function App Http Controllers Api RADIANS 有没有办
  • PHP 中字符串限制为前 5 个单词或前 42 个字符

    如果我在 PHP 中有一个字符串 该字符串在 PHP 中是令人讨厌的长字符串 并且我想缩短它 然后向其添加一些内容 我想将其缩短为前 6 个单词或 42 个字符 以较短者为准 然后在缩短后附加一个 唯一不会被缩短且不添加 的情况是它最初少于
  • 使用 PHP 将列标题添加到 CSV 文件

    我正在尝试将 php mysql 生成的表转换为可下载的 csv 文件 当用户输入搜索参数时 将调用 mysql 表并将结果作为表返回 我使用了该线程中提供的解决方案 效果非常好 在 PHP 中为用户创建 CSV 文件 https stac

随机推荐