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