Шаблон отправки электронной почты SparkPost

Я использую SparkPost PHP API для отправки электронной почты получателю, но сталкиваюсь с этой ошибкой. В настоящее время я настроил все необходимые поля, но у меня все еще есть проблемы с большими электронными письмами. Я могу легко отправить небольшой текст, но у меня возникают трудности с большими данными.

[{"message":"необходимое поле отсутствует","description":"По крайней мере одно из значений 'text' или 'html' должно присутствовать в 'content'","code":"1400"}]

Мой код:

for ($j = 0; $j < count($result1arr); $j++) {

    try {

        SparkPost::setConfig(["key" => "XXXXX"]);
        $results = Transmission::send(array(
                    "from" => "[email protected]",
                    "html" => $resultarr['mailBody'],
                    "text" => $resultarr['mailBody'],
                    "subject" => $resultarr['subject'],
                    "recipientList" => $result1arr[$j]['groupName']
        ));

        $_SESSION['success_message'] = 'Email sended successfully to Recipient List with ID : ' . $data['recipients_id'];
        $qry = "DELETE  from mailQueue where mailQueueId={$result1arr[$j]['mailQueueId']}";
        $res = $conn->query($qry);
        $sql1 = "INSERT INTO sendMailHistory (schoolName,noOfMailSent) VALUES ('{$result1arr[$j]['originalGroupId']}','{$results['results']['total_accepted_recipients']}')";
        $result1 = $conn->query($sql1);

        $chc = curl_init();
        curl_setopt($chc, CURLOPT_URL, "https://api.sparkpost.com/api/v1/recipient-lists/{$result1arr[$j]['groupName']}");
        curl_setopt($chc, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($chc, CURLOPT_HEADER, FALSE);
        curl_setopt($chc, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($chc, CURLOPT_CUSTOMREQUEST, "DELETE");
        curl_setopt($chc, CURLOPT_HTTPHEADER, array(
            "Accept: application/json",
            "Authorization: XXXXX"
        ));

        $response = curl_exec($chc);
        curl_close($chc);
        header('Location: ../index.php');
        exit;
        return true;
    } catch (\Exception $exception) {
        echo $exception->getMessage();
    }
}

person Bindesh Pandya    schedule 19.11.2015    source источник
comment
Я удалил ваш ключ API из вопроса, но вы должны удалить этот ключ и создать новый :/   -  person cfs    schedule 19.11.2015
comment
Каков примерный размер сообщения электронной почты, которое не удается? Я предполагаю, что все остальное одинаково между небольшими сообщениями и большими электронными письмами?   -  person Yepher    schedule 19.11.2015
comment
У вас все еще есть проблемы, Биндеш?   -  person Jordan    schedule 07.12.2015


Ответы (1)


Это происходит потому, что $resultarr['mailBody'] не определено.

Вы уверены, что массив $resultarr существует? Если да, то элемент mailBody должен отсутствовать.

Вы можете предоставить либо часть text, либо часть html, либо и то, и другое. Но если вы не укажете ни то, ни другое, вы получите ошибку: At least one of 'text' or 'html' needs to exist in 'content'.

В этом случае ни один из них не предоставляется, потому что $resultarr['mailBody'], будучи неопределенным, приводит к тому, что элементы text и html массива не определены.

person orval    schedule 14.01.2016
comment
Вы должны добавить дополнительную информацию, чтобы сделать ответ более содержательным. - person Pritam Banerjee; 14.01.2016
comment
Спасибо за вашу помощь, строковое значение, которое я передаю в $resultarr['mailBody'] имеет некоторые специальные символы, которые вызывают проблемы - person Bindesh Pandya; 20.01.2016