2015-11-19 2 views
1

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

[{"message":"required field is missing","description":"At least one of 'text' or 'html' needs to exist in '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(); 
    } 
} 
+0

Я удалил ваш ключ API из вопроса, но вы должны удалить этот ключ и создать новый:/ – cfs

+0

Каков примерный размер неполадки электронной почты? Я полагаю, что все остальное одинаково между маленькими сообщениями и большими электронными письмами? – Yepher

+0

У вас все еще проблемы Bindesh? – Jordan

ответ

1

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

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

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

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

+0

Вы должны добавить дополнительную информацию, чтобы сделать ответ более значимым. –

+0

Спасибо за ваше строковое значение справки, которое я передаю в $ resultarr ['mailBody'], имеет некоторые специальные символы, которые вызывают проблемы –

Смежные вопросы