Mailchimp API(PHP)-您的广告系列尚未准备好发送

时间:2018-11-19 14:23:12

标签: php mailchimp mailchimp-api-v3.0

我在使用PHP的Mailchimp API时遇到问题。

运行代码时,这是我得到的错误:

{
    "type": "http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/",
    "title": "Bad Request",
    "status": 400,
    "detail": "Your Campaign is not ready to send.",
    "instance": "46235d29-6a67-4d55-800d-a95e2dc7273f"
}

我知道为什么不准备发送广告系列,如您在此图中看到的那样,详细信息已填写但未保存:

这是我要运行的代码:

<?php
require '../vendor/autoload.php';
$apiKey = 'API ';

$mailchimp = new \MailchimpAPI\Mailchimp($apiKey);

$list_created = $mailchimp->lists()->post([
  'name' => 'Lista Monday',
  'contact' => [
    'company' => 'Test Company Monday',
    'address1' => 'Monday address 1',
    'city' => 'Monday City',
    'state' => 'Monday State',
    'zip' => '227560',
    'country' => 'Romania'
  ],
  'permission_reminder' => 'test',
  'campaign_defaults' => [
    'from_name' => 'Anjus Parsay',
    'from_email' => 'FROM EMAIL',
    'subject' => 'Monday Email',
    'language' => 'English'
  ],
  'email_type_option' => false
]);

$list_id = json_decode($list_created->getBody(), true)['id'];

$email = "EMAIL ";

$addedUser = $mailchimp->lists($list_id)->members()->post([
    'email_address' => $email,
    'status' => 'subscribed'
]);

//1. Create the template
$template_content = file_get_contents("http://widevisiondesign.com/anjus/mailchimp/src/testTemplate.html");

$template = $mailchimp->templates()->post([
'name' => 'testTemplateHTML',
'html' => $template_content
]);

$template_id = json_decode($template->getBody(), true)['id'];

//2. Create a campaign
$campaign = $mailchimp->campaigns()->post([
'type' => 'regular',
'recipients' => [
'list_id' => $list_id
],
'settings' => [
'title' => 'Monday',
'subject_line' => 'Monday - Sunday',
'from_name' => 'NAME NAME',
'to_name' => 'test',
'preview_text' => 'Preview text - Monday',
'template_id' => $template_id
]
]);

$campaign_id = json_decode($campaign->getBody(), true)['id'];

$sent = $mailchimp->campaigns($campaign_id)->send([$email], 'plaintext')->getBody();

print_r($sent);

?>

谢谢!

1 个答案:

答案 0 :(得分:0)

从您提供的代码和屏幕截图中,我想到了一些事情:

  1. 您是否已验证并验证了您的电子邮件地址?如果否,则需要验证电子邮件地址的域。转到Mailchimp仪表板,单击帐户>设置>域>验证域。
  2. 然后添加您的域,按照说明进行验证和认证。
  3. 如果愿意,可以在实际发送电子邮件之前进行API调用以获取清单。清单列出了成功和错误说明,说明在实际发送电子邮件之前需要做什么。
  4. 对不起,如果您觉得这有点遗憾,但您确实提供了您的电子邮件地址来代替“ FROM EMAIL”占位符吗?从代码来看,您似乎设置了 from_name 的名称,但没有设置 from_email