Я начал использовать 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" => "[email protected]");
$contact = $mj->contact($contact_params);
$add_params = array(
"method" => "POST",
"ListID" => "11223344",
"IsActive" => "True");
$result = $mj->listrecipient($add_params);
Но этот метод не добавляет электронное письмо в список Mailjet. Что я тут не так сделал? Пожалуйста, помогите мне.
Смотрите правки на этот ответ для исправления, если вы используете версию PHP старше 5.4.
Если возможно, попробуйте обновить вместо 🙂
Прежде всего, спасибо за ваш интерес к Mailjet!
Теперь, прежде чем дать вам ответ, пожалуйста, знайте, что есть руководство по тому, что вы спрашиваете Вот 🙂
Кроме того, README для Github репо для этой библиотеки имеет пример раздела по контактам и спискам контактов.
Теперь, когда вы знаете, где искать в следующий раз, когда у вас возникнут проблемы с этой библиотекой, давайте перейдем к исправлению, не так ли? 😉
Ваш add_Params
массив просто нужен ContactID
поле.
Вот как это должно выглядеть:
$add_params = [
"method" => "POST",
"ListID" => [TheListID],
"ContactID" => [TheContactID],
"IsActive" => True
];
Это должно решить вашу проблему.
Читайте дальше, если вы хотите знать, почему.
Кроме того, полный процесс создания контакта и добавления его в новый список описан в конце.
listrecipient
ресурс это способ связать contact
ресурс для contactslist
ресурс.
Это означает, что API не знает, что делать при создании listrecipient
ресурс без всех необходимых параметров (подробнее об этом Вот).
Давайте создадим contact
и contactslist
ресурсы и добавить первое ко второму.
(Я предполагаю, что у вас есть $mj
экземпляр Mailjet
учебный класс.)
Убедитесь, что контакт, который вы пытаетесь создать, еще не создан.
Увидеть Вот для получения дополнительной информации.
$makeContactParams = [
"method" => "POST",
"Email" => "[email protected]"];
$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);
Я надеюсь, что это помогло вам решить вашу проблему и понять, почему это было в первую очередь 🙂
Других решений пока нет …