我已开始使用Mailjet使用表单存储订阅电子邮件。我用于此任务的库是" https://github.com/mailjet/mailjet-apiv3-php-simple"
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列表中。我在这做错了什么?请帮帮我。
答案 0 :(得分:3)
如果您使用的是早于5.4的PHP版本,请参阅this answer上的编辑内容。
如果可能,请尝试升级: - )
首先,感谢您对Mailjet的兴趣!
现在,在给出答案之前,请知道您提出的问题指南here :-)。
此外,Github repo for that library的自述文件有example section on contacts and contactslists。
现在你知道下次遇到这个库的问题时首先要看哪里,让我们来修复,好吗? ; - )
您的add_Params
数组只需要一个ContactID
字段
这是它应该是什么样子:
$add_params = [
"method" => "POST",
"ListID" => [TheListID],
"ContactID" => [TheContactID],
"IsActive" => True
];
这可以解决您的问题。
如果您想了解原因,请继续阅读 此外,创建联系人并将其添加到最后描述的新列表的完整过程。
listrecipient
资源是一种将contact
资源与contactslist
资源相关联的方式。
这意味着当您创建listrecipient
资源而没有所有必要参数时,API不知道该怎么做(关于here的更多信息)。
让我们创建contact
和contactslist
资源,并将前者添加到后者。
(我假设你有$mj
类的Mailjet
个实例。)
确保您已创建的联系人尚未创建。
有关更多信息,请参阅here。
$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);
我希望这有助于您解决问题并理解为什么它首先出现在那里: - )