Mandrill 通过 Laravel / PHP 入站电子邮件

2024-03-19

我想知道是否有人可以帮助我解决我在研究 Laravel 和通过 Mandrill 入站电子邮件处理相关问题时遇到的一些问题。 基本上我希望能够通过 Mandrill 接收电子邮件并将它们存储在我的 Laravel 数据库中。现在我不确定我是否用错误的眼光阅读文档,但 Mandrill 说它处理入站电子邮件和出站电子邮件,但是我开始认为 Mandrill 处理入站电子邮件详细信息而不是实际入站电子邮件,例如消息是否已发送等。

我创建了一个新的 Mandrill 帐户,创建了一个 API 密钥,创建了一个入站域和我网站的相应子域(例如 inboundmail.myproject.co.uk),设置了 MX 记录,并且 MX 记录显示为有效。从那里我设置了一条路线(例如[电子邮件受保护] /cdn-cgi/l/email-protection),以及相应的 webhook (myproject.co.uk/inboundmail.php),并在此 webhook 中尝试了 API 中给出的各种示例(https://mandrillapp.com/api/docs/inbound.php.html https://mandrillapp.com/api/docs/inbound.php.html),例如添加新路由、检查路由并尝试添加新域。所有这些都有效并产生了正确的结果,因此我对 Mandrill 的身份验证没有问题,但我真正的问题是是否有一个特定的 Webhook 来处理接受传入邮件消息?

我情不自禁地感觉自己像个十足的白痴问这个问题,因为我确信答案要么就在我面前,要么通过山魈不可能。

提前致谢。


感谢 duellsy 和 debest 的帮助,最后我找到了一个脚本并对其进行了扩展,将邮件添加到我自己的数据库中并相应地设计/显示它。希望这对可能遇到同样问题的人有所帮助:

<?php

require 'mandrill.php';

define('API_KEY', 'Your API Key');
define('TO_EMAIL', '[email protected] /cdn-cgi/l/email-protection');
define('TO_NAME', 'Foo Bar');

if(!isset($_POST['mandrill_events'])) {
    echo 'A mandrill error occurred: Invalid mandrill_events';
    exit;
}
$mail = array_pop(json_decode($_POST['mandrill_events']));

$attachments = array();
foreach ($mail->msg->attachments as $attachment) {
    $attachments[] = array(
        'type' => $attachment->type,
        'name' => $attachment->name,
        'content' => $attachment->content,
    );
}

$headers = array();
// Support only Reply-to header
if(isset($mail->msg->headers->{'Reply-to'})) {
    $headers[] = array('Reply-to' => $mail->msg->headers->{'Reply-to'});
}

try {
    $mandrill = new Mandrill(API_KEY);
    $message = array(
        'html' => $mail->msg->html,
        'text' => $mail->msg->text,
        'subject' => $mail->msg->subject,
        'from_email' => $mail->msg->from_email,
        'from_name' => $mail->msg->from_name,
        'to' => array(
            array(
                'email' => TO_EMAIL,
                'name' => TO_NAME,
            )
        ),
        'attachments' => $attachments,
        'headers' => $headers,
    );
    $async = false;
    $result = $mandrill->messages->send($message, $async);
    print_r($result);
} catch(Mandrill_Error $e) {
    // Mandrill errors are thrown as exceptions
    echo 'A mandrill error occurred: ' . get_class($e) . ' - ' . $e->getMessage();
    // A mandrill error occurred: Mandrill_PaymentRequired - This feature is only available for accounts with a positive balance.
    throw $e;
}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mandrill 通过 Laravel / PHP 入站电子邮件 的相关文章

  • PHP strtotime() 未返回正确的月份

    由于当前月份 年份是 2012 年 1 月 为什么以下代码返回 2011 年 12 月而不是 2011 年 11 月 echo date F Y strtotime 2 months 如果有影响的话 这是在 PHP 5 3 0 上 要获得您
  • 为什么我的浮点数大于 1 时在 MYSQL 中存储为 .9999?

    我将进程时间作为 float 4 4 存储在 MySQL 数据库中 start time microtime TRUE things happen in my script end time microtime TRUE process t
  • 在PHP中,如何在表格中显示数组内容

    如果我在 MySQL 客户端中进行选择 我将得到如下所示的输出 mysql gt select FROM group LIMIT 2 group id group supergroup id group deletable group la
  • 使用 php ping 网站

    我想创建一个 php 脚本 它将 ping 一个域并列出响应时间以及请求的总大小 这将用于监控网站网络 我尝试过curl 这是我到目前为止的代码 function curlTest2 url clearstatcache return if
  • Doctrine 装置如何覆盖 purger 类?

    From doctrine fixture bundle the console doctrine fixtures load n命令定义如下 https github com doctrine DoctrineFixturesBundle
  • 当第二个参数包含运算符号时,为什么 ltrim 会删除一个字符? [复制]

    这个问题在这里已经有答案了 If I do ltrim 53 34567 53 ltrim 53 34567 53 ltrim 53 34567 53 I get 4567作为结果而不是34567 这种行为的解释是什么 ltrim 53 3
  • 没有得到 popen 的完整回复

    嗨 我正在使用 popen 运行一个进程 handle popen python scriptos py r while feof handle data fgets handle echo gt data 我只从返回 5 行的进程中获取
  • Laravel:使用 Faker 播种多个独特的列

    介绍 怎么样 伙计们 我有一个关于模型工厂和多个独特列的问题 背景 我有一个名为 Image 的模型 该模型将语言支持存储在单独的模型中 图片文字 图片文字 has an image id栏 语言栏和文本栏 图片文字有一个约束MySQL那个
  • 如何使用 AJAX/jQuery 显示打印内容?

    所以我试图理解整个 AJAX jQuery 的事情 现在 当我单独运行这个 PHP 脚本时 我必须等待并观察轮子旋转 直到循环完成然后加载 while row mysql fetch array res postcode to storm
  • PHP中的反转数组

    array 7 0 gt array 2 id gt string 1 9 roi gt float 0 1 gt array 2 id gt string 1 1 roi gt float 0 2 gt array 2 id gt str
  • 如何解决 注意:未定义索引:第 21 行 C:\xampp\htdocs\invmgt\manufactured_goods\change.php 中的 id [重复]

    这个问题在这里已经有答案了 我的 PHP 代码有一个问题 显示 注意 未定义的索引 我确信它非常简单 因为我是初学者 所以我不太清楚到底出了什么问题 所以请帮助我 这是代码
  • 管理面板的 htaccess 重写规则

    我的网络应用程序中有这样的 url 模式 www mysitename com foldername controller method 所有请求的页面首先被重定向到根文件夹上的index php 然后处理请求的页面 但每当我进入管理面板
  • PHPMailer 验证失败

    当我尝试在工作中使用 Windows Server 2012 上的 PHPMailer 来使用 SMTP 发送报告电子邮件时 出现身份验证失败错误 我在域上使用服务器管理员帐户 我非常确定密码是正确的 检查下面的代码 require PHP
  • 警告:mysqli_query() 期望参数 1 为 mysqli,在 中给出 null

    我正在尝试构建一个简单的自定义 CMS 但出现错误 警告 mysqli query 期望参数 1 为 MySQLi 在中给出的为 null 为什么我会收到此错误 我的所有代码都已经是 MySQLi 并且我使用两个参数 而不是一个 con m
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati
  • 是否可以使用流上下文在 PHP 下使用 FTPS?

    我了解到使用ftpsPHP for Windows 下的 ftp ssl connect 很困难 您被要求进入构建自己的二进制文件以包括 Open SSL 的漫长旅程 我找到了以下建议phpseclib http phpseclib sou
  • 计算特定产品类别的购物车商品数量

    我试图仅从 WooCommerce 中的特定产品类别获取购物车中的商品数量 我正在为一家酒厂做一个网站 它有酒精和非酒精产品 所有葡萄酒都属于 葡萄酒 主类别或类别 ID 34 其下有许多子类别和产品 对于属于此类别的任何商品 我需要知道此
  • 通过php将mp3转换为ogg

    我有一个网站 用户可以上传音乐并将其转换为 mp3 但我需要 mp3 和 ogg 文件支持才能以 html5 播放音乐 那么 有没有可以将mp3转换为ogg的php脚本呢 使用 ffmpeg 您可以直接从 php 脚本执行命令

随机推荐

  • 对“respond_to”感到困惑吗?方法

    编辑 我正在使用 Ruby 版本 2 0 0 我在文件 example rb 中有以下代码 def say hello puts hi end puts respond to say hello say hello 运行此代码时 输 出为
  • 为什么调用 Google Slides API 返回错误?

    我基本上一直在使用这段代码将图像加载到 Google Drive 然后使用 Python 将该图像传输到 Google Slides 由于某种原因 它今天停止工作了 我所基于的代码位于此处 http wescpy blogspot com
  • spring 上下文中的测试套件

    是否可以使用加载的 spring 上下文运行测试套件 如下所示 RunWith Suite class SuiteClasses Test1 class Test2 class ContextConfiguration locations
  • 如何让文本区域自动扩展到最大高度?

    我正在学习CSS 我有一个包含灵活文本区域的 div 现在我希望当用户在textarea中输入多行内容时 textarea和外层div自动扩展高度 并且当textarea超过3行时 停止扩展并滚动textarea 我应该如何编写 CSS 渲
  • 在 JShell 上执行时相同语句的不同行为

    我正在研究一个问题来存储两个类的引用 例如 class A B b A B b this b b class B A a B A a this a a public static void main String s A a new A n
  • EF 6,代码第一个联结表名称

    我正在 EF 6 中尝试自定义命名约定 我有 2 个表和 1 个联结表 WebUser UserRequest WebUser UserRequest 我编写了应该能够重命名表的函数 从 WebUser 到 web user private
  • 无法在 Felix config.properties 中将 PAX-URL 的程序集协议与自动启动的捆绑包一起使用

    我正在尝试使用 PAX URL 这样我就可以即时组装未打包的捆绑包 如果我将 pax url assembly 1 2 1 jar 放入自动启动包中 然后键入 安装程序集 路径 到 我的 文件夹 一切正常 问题是 我想使用 gt felix
  • 如何在闪亮中创建登录页面?

    目标是拥有一个闪亮的模块ui1 R加载第二个模块ui2 R当按钮confirm被点击 我认为问题是is null input confirm 总是无效的 我需要的是仅使表达式无效一次confirm被点击 这个问题非常接近输入密码后启动Shi
  • 为什么我的温莎城堡控制器工厂的 GetControllerInstance() 被调用为空值?

    我正在使用温莎城堡来管理控制器实例 除其他外 我的控制器工厂如下所示 public class WindsorControllerFactory DefaultControllerFactory private WindsorContain
  • 在 iPhone 重启时启动 iOS BLE Central 应用程序

    我计划使用 CoreBluetooth 框架开发一个 iOS 应用程序 该应用程序可以连续监控计步器外围设备并计算脚步数 我知道 如果后台执行模式设置为 BLE Central 应用程序即使在后台也将继续接收 BLE 事件 Apple 文档
  • SQL存储过程检查表中的值是/否并执行sql

    检查table1中value是否 Y 然后立即执行sql select if select value1 from table1 where value desc Indicator and value1 Y then execute im
  • Elasticsearch 连接超时

    from datetime import datetime from elasticsearch import Elasticsearch es Elasticsearch doc author kimchy text Elasticsea
  • 如何从 TinyDB 数据库中检索单个值?

    我正在学习如何在 Python 上使用 TinyDB 并且我已经掌握了基础知识 添加 删除 更新等 但现在我正在尝试从数据库中检索特定值 我正在使用的代码在这个方法中 def showpassword show userdb get whe
  • 在 Go 中模拟 HTTPS 响应

    我正在尝试为向 Web 服务发出请求的包编写测试 我遇到问题可能是由于我对 TLS 缺乏了解 目前我的测试看起来像这样 func TestSimple server httptest NewServer http HandlerFunc f
  • 原则 2 中的动态表/实体名称

    我希望有人能够阐明我的代码发生了什么 我需要一个实体来表示通用表 作为具有 X id 后缀的表的模型 例如 我有一个实体 CustomerX 我需要查询的表是 cusotmer 1 customer 2 customer 3 等 我目前正在
  • select unique * 查询有多贵

    在sql server 2012中 我有一个包含超过2500万行且有重复项的表 该表没有唯一索引 它只有一个非聚集索引 我想消除重复项 所以我想到了以下内容 select distinct into temp table from prim
  • Angular CLI 在 ng 服务上偶尔会冻结计算机

    我有问题ng serve 当我在我的 Angular 项目上运行它时 大约 10 的时间 它会在此过程中冻结 并且整个计算机也会冻结 有时它会在一段时间 从20秒到120秒 后解冻并成功编译 有时我需要手动关闭计算机电源 我已经在 2 台计
  • 在 CSS 中应该使用 rgba(0, 0, 0, 0) 还是 rgba(255, 255, 255, 0) 来实现透明度?

    你应该使用rgba 0 0 0 0 or rgba 255 255 255 0 CSS 的透明度 各自的优点和缺点是什么 最后一个参数为rgba 函数是 alpha 或 opacity 参数 如果您将其设置为0它将意味着 完全透明 前三个参
  • 将datagridview导出到word文档c#

    我正在尝试将数据网格导出到Word文档 但不是这个结果 EmployeeID EmployeeName Birth Phone Address DateOfHiring Salary EmloyeeType 1 name 1 11 test
  • Mandrill 通过 Laravel / PHP 入站电子邮件

    我想知道是否有人可以帮助我解决我在研究 Laravel 和通过 Mandrill 入站电子邮件处理相关问题时遇到的一些问题 基本上我希望能够通过 Mandrill 接收电子邮件并将它们存储在我的 Laravel 数据库中 现在我不确定我是否