首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mailjet:将电子邮件添加到列表不起作用

Mailjet:将电子邮件添加到列表不起作用
EN

Stack Overflow用户
提问于 2015-05-19 18:23:02
回答 1查看 1.2K关注 0票数 2

我已经开始使用Mailjet通过表单来存储订阅电子邮件。我用于此任务的库是"https://github.com/mailjet/mailjet-apiv3-php-simple

代码语言:javascript
复制
include("php-mailjet-v3-simple.class.php");
$apiKey = "xxx";
$secretKey = "yyy";
$mj = new Mailjet($apiKey, $secretKey);
$contact_params = array("method" => "POST", "Email" => "abc@gmail.com");
$contact = $mj->contact($contact_params);

$add_params = array(
    "method" => "POST",
    "ListID" => "11223344",
    "IsActive" => "True"
);
$result = $mj->listrecipient($add_params);

但此方法不会将电子邮件添加到Mailjet列表中。我在这里做错了什么?请帮帮我。

EN

Stack Overflow用户

发布于 2015-05-19 21:07:16

编辑:

如果您使用的是早于5.4的this answer版本,请参阅PHP上的编辑以获取修补程序。

如果可能,请尝试升级:-)

首先,感谢您对Mailjet的关注!

现在,在给你答案之前,请记住,对于你所问的问题,有一个指南:here :-)。

此外,Github repo for that library的自述文件中还包含一个example section on contacts and contactslists

既然您知道下次遇到这个库的问题时应该先看哪里,让我们来解决这个问题,好吗?;-)

解决之道

您的add_Params数组只需要一个ContactID字段。

下面是它应该是什么样子:

代码语言:javascript
复制
$add_params = [
    "method"    =>  "POST",
    "ListID"    =>  [TheListID],
    "ContactID" =>  [TheContactID],
    "IsActive"  =>  True
];

这应该可以解决您的问题。

如果你想知道原因,请继续阅读。

此外,创建联系人并将其添加到最后描述的新列表的完整过程。

“为什么”

listrecipient资源是将contact资源链接到contactslist资源的一种方式。

这意味着,如果您没有所有必要的参数(有关该here的更多信息),那么当您创建一个listrecipient资源时,API不知道该做什么。

整个过程

让我们创建一个contact和一个contactslist资源,并将前者添加到后者。

(我假设您有一个Mailjet类的$mj实例。)

编辑

确保您尝试创建的联系人尚未创建。

更多信息请参见here

代码语言:javascript
复制
$makeContactParams = [
    "method"    =>  "POST",
    "Email"     =>  "testSO@example.org"
];

$contact = $mj->contact($makeContactParams);

echo "Contact ID: ".$contact->Data[0]->ID."\n";

$contactslistParams = [
    "method"    =>  "POST",
    "Name"      =>  "TestSO"
];

$list = $mj->contactslist($contactslistParams);

echo "List ID: ".$list->Data[0]->ID."\n\n";    

$listRecepParams = [
    "method"    =>  "POST",
    "ListID"    =>  $list->Data[0]->ID,
    "ContactID" =>  $contact->Data[0]->ID,
    "IsActive"  =>  True
];

$recep = $mj->listrecipient($listRecepParams);

我希望这能帮助您解决您的问题,并理解它为什么会出现在第一个地方:-)

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30322925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档