#php #mailjet
#php #mailjet
Вопрос:
Я отправляю кампанию с использованием API mailjet. Моя функция для этого в настоящее время выглядит так:
public function sendCampaign($listName, $config, $vars) {
//First we need to set up a draft of the campaign.
$listId = $this->config['lists'][$listName];
$title = $config['subject'] . "_" . time();
$requestBodyOne = [
'Locale' => 'de_DE',
'Sender' => $config['fromName'],
'SenderEmail' => $config['fromEmail'],
'Subject' => $config['subject'],
'ContactsListID' => $listId,
'TemplateID' => $config['template'], //TODO: Figure out how to get templating to work -- right now, this is being ignored!
'Title' => $title,
];
$responseOne = $this->client->post(Resources::$Campaigndraft, ['body' => $requestBodyOne]);
if(!$responseOne->success()) {
$responseOne->getStatus();
}
$data = $responseOne->getData();
$draftId = $data[0]['ID'];
//Now we add our body to the draft
$requestBodyTwo = [
'Html-part' => $vars['body'],
];
$responseTwo = $this->client->post(Resources::$CampaigndraftDetailcontent, ['id' => $draftId, 'body' => $requestBodyTwo]);
if(!$responseTwo->success()) {
$responseTwo->getStatus();
}
//Now we can send the campaign
$responseThree = $this->client->post(Resources::$CampaigndraftSend, [
'id' => $draftId,
'TemplateID' => $config['template'] //TODO: Figure out how to get templating to work -- right now, this is being ignored!
]);
die(dump($responseThree));
}
(Я понимаю, что здесь есть некоторые запахи — я разобью это на более мелкие функции, как только заработает большая.)
Хотя я устанавливаю templateId в двух местах, я не могу заставить mailjet использовать шаблон (который принимает одну переменную «body»). Вместо этого мое сообщение отправляется как HTML без шаблона переноса. Я проверил, что мой шаблон существует.
Что я, вероятно, здесь делаю не так?
====
Редактировать: изменение запроса hte, чтобы он выглядел так:
$requestBodyTwo = [
'Vars' => ['body' => $vars['body']]
];
… выдает ошибку 400: «Свойства не поддерживаются в полезной нагрузке JSON»
Комментарии:
1. Вы включили отчеты об ошибках для возможных ошибок шаблона? dev.mailjet.com/template-language/sendapi /…
2. Спасибо за ваш комментарий. Я только что включил отчет об ошибках шаблона, и, похоже, ошибок нет.
Ответ №1:
Завершаем цикл на этом: в итоге мы использовали конечную точку /send и ввели значение для MJ-campaign . Это сделало свое дело.
Комментарии:
1. Имейте в виду, что send api не использует список исключений, а также вам, вероятно, придется самостоятельно обрабатывать отписки.