MailChimp v3.0: тестовый API отправляет электронную почту, но действие send возвращает true из вызова, но учетная запись отключается - PullRequest
0 голосов
/ 15 марта 2019

Вот мой код для отправки почты с использованием API Mailchimp через PHP, я получил тестовое письмо, вызвав тестовое действие, но в разделе отправки ответ верный, но письмо не получено, а учетная запись отключена. Может кто-нибудь подсказать, где я могуя ошибаюсь?

В конце этого скрипта я получаю вывод, что тестовая почта успешно отправлена!1.

Я использую библиотеку MailChimp от DrewM.

<?php 
require('./vendor/autoload.php');

use \DrewM\MailChimp\MailChimp;

$apiKey = '{API_KEY}';
$listID = '{LIST_ID}';
$campaignId = '{campaignId}';

$MailChimp = new MailChimp($apiKey);

# 1.Get template sections by giving template id
$templateId = '{templateId}';
$subResourse = "default-content";   
$result = $MailChimp->get("templates/$templateId/$subResourse");

$response = $MailChimp->getLastResponse();

if($response['headers']['http_code'] == 200){

    $responseObj = json_decode($response['body']);

    if(isset($responseObj->sections)){
        # 2. Edit the data which are editable 
        $sectionsEditable = $responseObj->sections;
        foreach($sectionsEditable as $key=>$val){   
            $editabelArrayData[$key] = utf8_encode(100);
        }

        if(isset($editabelArrayData)){
            $dataToSendForEditContent = array(
                "template" => array(
                    "id" => $templateId,
                    "sections" => $editabelArrayData
                )
            );

            $result = $MailChimp->put("campaigns/$campaignId/content", $dataToSendForEditContent);

            $editedResponse = $MailChimp->getLastResponse();

            if($editedResponse['headers']['http_code'] == 200){
                # 3 . Send Mail
                $emailDataToSend = array(
                    "test_emails" => array(
                        "{email_address}"
                    ),
                    "send_type" => "html"
                );

                $sendResponse = $MailChimp->post("campaigns/$campaignId/actions/test", $emailDataToSend);

                if($sendResponse){
                   print('Test Mail Sent Successfully!');
                   $sendResponseProd = $MailChimp->post("campaigns/$campaignId/actions/send");
                   if($sendResponse){
                       echo"</br>";var_dump($sendResponse);exit;
                   }
                }else{
                    exit('Send Errors!');
                }

            }else{
                $editedResponseObj = json_decode($editedResponse['body']);
                echo"<pre>";print_r($editedResponseObj);
                exit('Edit Error');
            }
        }else{

            # Test Mail 
            $emailDataToSend = array(
                "test_emails" => array(
                    "{email_address}"
                ),
                "send_type" => "html"
            );

            $sendResponse = $MailChimp->post("campaigns/$campaignId/actions/test", $emailDataToSend);

            if($sendResponse){
               print('Test Mail Sent Successfully!');
               echo"</br>";

               #make Production Testing               
                $sendResponseProd = $MailChimp->post("campaigns/$campaignId/actions/send");
                echo"<pre>";print_r($sendResponseProd);exit;

            }else{                
                exit('Send Errors!');
            }
        }
    }
}else{
    exit('Error!');
}
...