如何在 Laravel 中检索 Mailgun 传递的消息

2024-04-13

在我的 Node.js 应用程序中,我遵循了 Mailgun 文档https://documentation.mailgun.com/en/latest/quickstart-sending.html#send-with-smtp-or-api https://documentation.mailgun.com/en/latest/quickstart-sending.html#send-with-smtp-or-api用于发送类似于以下内容的电子邮件:

mailgun.messages().send(data, (error, body) => {
  console.log(body);

// body is {id: some_mailgun_built_id, message: 'Queued. Thank You'}
// which I store the body.id in my database

});

我面临的问题是,当我使用 Laravel 发送电子邮件时,如何访问相同的 Mailgun 响应? Mailgun 文档没有提供任何示例来说明如何检索该数据。

这就是我使用 Laravel 发送电子邮件的方式:

\Mail::to($recipients)->send(
  // this just renders my blade file which formats my email
  new SendEmail($email);
);
// ?? How to get Message was sent object here

如果有人知道任何解决方案,将不胜感激!


您好,欢迎来到 SO!

Laravel 有两个电子邮件事件,如官方文档 https://laravel.com/docs/6.x/mail#events: MessageSending https://github.com/laravel/framework/blob/6.x/src/Illuminate/Mail/Events/MessageSending.php and MessageSent https://github.com/laravel/framework/blob/6.x/src/Illuminate/Mail/Events/MessageSent.php

您可以按照活动官方文档 https://laravel.com/docs/6.x/events为了监听这些特定事件:

/**
 * The event listener mappings for the application.
 *
 * @var array
 */
protected $listen = [
    'Illuminate\Mail\Events\MessageSending' => [
        'My\Email\Listener',
    ],
    'Illuminate\Mail\Events\MessageSent' => [
        'My\Other\Listener',
    ],
];

您将收到作为输入的Swift_message其中包含一个标头,该标头是您要查找的 Mailgun ID。让我们来看看MailgunTransport@send源代码以了解幕后发生的事情:

/**
 * {@inheritdoc}
 */
public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null)
{
     // [...]

     $response = $this->client->request(
         'POST',
         "https://{$this->endpoint}/v3/{$this->domain}/messages.mime",
         $this->payload($message, $to)
     );

     $message->getHeaders()->addTextHeader(
         'X-Mailgun-Message-ID', $this->getMessageId($response) // <-- HERE LARAVEL SETS THE MESSAGE ID
     );

     // [...]
}

在侦听器中查找相同的密钥,您可以恢复 mailgun 分配给您的电子邮件的消息 ID。遗憾的是,您无法访问整个 Mailgun 响应,但使用 API,您可以轻松检索消息。

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

如何在 Laravel 中检索 Mailgun 传递的消息 的相关文章

  • PHPExcel下载文件

    我想下载使用 PHPExcel 生成的 Excel 文件 我按照以下代码PHPExcel 强制下载问题 https stackoverflow com questions 26265108 phpexcel force download i
  • 私人聊天系统MYSQL查询显示发送者/接收者的最后一条消息

    在这里我延伸一下我之前的问题 私人聊天系统MYSQL查询ORDERBY和GROUPBY https stackoverflow com questions 10929366 private chat system mysql query o
  • 在 PHP 中将 CSV 写入不带括号的文件

    是否有本机函数或实体类 库用于将数组写入 CSV 文件中的一行而无需封装 fputcsv将默认为 如果没有为封装参数传入任何内容 谷歌让我失望了 返回一大堆有关的页面的结果 fputcsv PEAR 的库做的事情或多或少与fputcsv 工
  • 重复使用相同的卷曲手柄。性能大幅提升?

    在 PHP 脚本中 我对不同的 URL 执行了许多不同的curl GET 请求 一百个 将重复使用来自curl init提高性能 还是与请求的响应时间相比可以忽略不计 我这么问是因为在当前的架构中保持相同的句柄并不容易 交叉发布自我应该关闭
  • 使用 PHP 对 ASP.NET 成员身份中的用户进行身份验证

    我在尝试使用 PHP 针对现有 ASP NET 成员资格数据库对用户进行身份验证时遇到一些问题 我在网上搜索过 发现现有的答案似乎对我不起作用 即 public static function Hash password salt deco
  • 如何将 PHPMailer 与 Codeigniter 3 集成

    嗨 我正在尝试使用PHPMailer 库 https github com PHPMailer PHPMailer来自我的 Codeigniter 应用程序中的 GitHub 我下载了代码并解压到我的application library文
  • 如果您编辑/更新该特定对象,laravel 唯一名称表示已被占用

    我有一个投资组合表 我没有在 url 中显示投资组合的 id 而是使用 getRouteKeyName 显示投资组合的名称 所以我希望该名称是唯一的 否则如果它已经存在 它可能会显示错误的投资组合 我将名称字段的规则设置为唯一 如果我现在编
  • Magento补丁安装失败

    从以下位置下载并运行 Magento PHP 5 4 支持补丁 Magento CE v1 7 0 0 1 7 0 2 时http www magentocommerce com download http www magentocomme
  • strlen()==0 和empty()之间有区别吗?

    我正在查看其他人编写的一些表单验证代码 我看到了这个 strlen 0 当测试表单变量是否为空时 我使用empty 功能 一种方法比另一种方法更好吗 它们在功能上等效吗 strlen是获取字符串中的字符数 同时empty用于测试变量是否为空
  • Laravel 路由中的“as”关键字是什么意思?

    据我从 Laravel 文档中了解到 它用于重定向 但也许我错了 I wrote Route get user profile as gt profile function echo some text 然后我期望我的 URL 重定向自ht
  • 使用 PHP 的 Google Glass GDK 身份验证

    我正在尝试点击此链接来验证 GDK 中的用户 https developers google com glass develop gdk authentication https developers google com glass de
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • 如何编写在正文中包含锚标记的 Zend Framework URL?

    使用 Zend Framework 中设置的标准 MVC 我希望能够显示始终具有锚点的页面 现在我只是在 phtml 文件中添加一个带有 anchor 的无意义参数
  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • 安装后如何使用 npm 包 (chart.js)?

    我正在制作一个练习 Laravel 站点 并且我已经通过 npm install 安装了 Chart js 这是一个愚蠢的问题 但现在我如何从这里使用它 或通过 npm 安装的任何东西 这些文件安装在节点模块文件夹中 我应该在页眉中使用标签
  • 如何在 Laravel 5.4 中加载 Vue 组件?

    我已经运行 npm run watch 并收到了消息 This dependency was not found in resources assets js app js To install it you can run npm ins
  • php 表单提交 - Q2

    我对这个虚拟问题感到抱歉 这是我的简单 PHP 表单 其中包含两个 SQL 表和 ADD 提交 按钮 我希望将人员从 Test1 转移到 Test2 很多事情都很好 只有提交按钮不起作用 因此 Test2 表没有反馈 Revised 现在提
  • 如何在 codeigniter 查询中使用 FIND_IN_SET?

    array array classesID gt 6 this gt db gt select gt from this gt table name gt where array gt order by this gt order by q
  • mysqli bind_param 中的 NULL 是什么类型?

    我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句 如果该变量存在 否则插入 null 然后我知道 type variable i corresponding variable has type integer d
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function

随机推荐

  • 如何按用途自动对类中的函数进行排序?

    a Robert C Martin 的 Clean Code 一书建议根据 降级规则 对函数进行排序 我们希望代码读起来像自上而下的叙述 我们想要每一个 函数之后是下一个抽象级别的函数 因此 我们可以读取该程序 下降一个抽象级别 我们阅读函
  • 交换 img src 或显示/隐藏多个图像是否更快?

    在网页上交换图像时使用的最佳做法是什么 更改图像源或只是在页面上显示 隐藏多个图像 为了平衡速度 你必须做出选择 有两个选择 更改图像源 这样 页面加载速度会更快 因为它只获取可见图像 但当您更改 src 属性时 显示新图像将花费更长的时间
  • 如何创建具有逐字环境的新 Beamer 环境?

    我正在创建一个 Beamer 演示文稿 其中包含大量 LaTeX 示例 并且必须在逐字环境中进行 我厌倦了打字 begin example begin verbatim Verbatim Text end verbatim end exam
  • 对于大输入,十进制扩展程序运行速度非常慢

    我正在编写一个程序来计算数字的小数扩展103993 33102我想根据用户输入的数字打印出所有尾随小数 它可以快速运行所有数量最多10 5但如果输入10 6编程大约需要 5 分钟才能打印出答案 我怎样才能加快速度 我尝试了两种不同的方法 一
  • Java从ZipInputStream条目创建InputStream

    我想编写一个从单个 InputStream 读取 ZIP 内的多个 XML 文件的方法 该方法将打开一个 ZipInputStream 并在每个 xml 文件上获取相应的 InputStream 并将其提供给我的 XML 解析器 这是该方法
  • 基于 Django 年/月的帖子存档

    我是 Django 新手并启动了一个应用程序 我做了模型 视图 模板 但我想在底部添加某种存档 页面的内容 类似这样http www flickr com photos ionutgabriel 3990015411 http www fl
  • JPA实体扩展类包含@Id

    我有实体类都包含 id 作为主键 我可以创建包含所有公共字段的抽象类并允许所有类扩展该类 如下所示 public abstract class CommonFields Id Column name ID private long id p
  • 不可能:没有附加布局管理器;跳过布局

    我完全迷失了这个错误 我理解它 但我不知道出了什么问题 对于代码 In the OnCreate of my activity historyRecyclerView RecyclerView findViewById R id recyc
  • 在 kotlin 中何时一起使用挂起函数和 Flow 或分开使用?

    在审查用 kotlin 编写的一些代码时 有件事引起了我的注意 我在一些项目中查看领域层 在一些项目中 我看到挂起功能和 Flow 一起使用 而在一些项目中 我看到只使用 Flow 例如暂停和流动在一起 class FetchMovieDe
  • 如何在Python中隐藏控制台窗口?

    我正在用 Python 编写一个 IRC 机器人 我希望为 Linux 和 Windows 制作独立的二进制文件 主要是我希望当机器人启动时 控制台窗口应该隐藏 并且用户不应该看到该窗口 我能为此做些什么呢 只需将其保存为 pyw扩大 这将
  • 将一个变量设置为等于另一个变量[重复]

    这个问题在这里已经有答案了 我有一些关于在 JavaScript 中将变量设置为等于另一个变量的问题 假设我们创建一个对象 a并设置b a var a fname Jon lname Smith age 50 var b a 我明白如果我们
  • 音色 `set-config!` 已经改变了数量,因此不知道如何使用它来将 std err/out 输出到文件

    我正在尝试使用https github com ptaoussanis timbre https github com ptaoussanis timbre记录到文件而不是控制台 以下是我找到的一些有关如何执行此操作的文档 The defa
  • 为 libstdc++ 生成 CTAGS(来自当前 GCC)

    I know 你完成了我 https github com Valloric YouCompleteMe基于 LLVM 但我想使用OmniCppComplete http www vim org scripts script php scr
  • 操作码的十六进制值

    我创建了一个非常简单的汇编程序 可以在 DOS 中打印字母 a 我在十六进制编辑器中打开它 结果是这样的 汇编代码 mov ah 2 mov dx a int 21h 十六进制代码 B4 02 B2 61 CD 21 我想了解它是如何生成的
  • 在 pdf 中按宽度调整内容

    渲染为 pdf 时 我需要 html 页面为打印宽度的 100 否则内容会被切断 是否有捷径可寻 我想出了一个解决方法 它在渲染后获取 html 宽度 然后设置缩放系数以强制正确的宽度 var page require webpage cr
  • 如何确定视图的列是派生的还是常量?

    假设我有下表 create table t Item ItemID int not null identity 1 1 constraint PK Item primary key Description varchar 256 not n
  • Apache AVRO 与休息

    我正在评估将 Apache AVRO 用于我的 Jersey REST 服务 我将 Springboot 与 Jersey REST 结合使用 目前我接受 JSON 作为输入 并使用 Jackson 对象映射器将其转换为 Java Pojo
  • Laravel 4:在包中部署自定义 artisan 命令

    我开发了一些自定义 artisan 命令 以便更轻松地与我的包一起使用 是否可以将 artisan 命令包含到包中以便于部署 如果可以 怎样做 Thanks 在你的包结构中有一个命令集
  • 如何获取包含越界对象的绘图尺寸

    我可以这样计算图的高度 library ggplot2 library egg library gridExtra g lt ggplot iris aes x Species y Petal Length stat summary geo
  • 如何在 Laravel 中检索 Mailgun 传递的消息

    在我的 Node js 应用程序中 我遵循了 Mailgun 文档https documentation mailgun com en latest quickstart sending html send with smtp or api