я использую SparkPost PHP API отправить электронное письмо получателю, но я столкнулся с этой ошибкой. В настоящее время я настроил все необходимые поля, но у меня все еще есть проблемы с большими электронными письмами. Я могу легко отправить небольшой текст, но у меня возникают трудности с большими данными.
[{«message»: «обязательное поле отсутствует», «description»: «В ‘content'», «code»: «1400»}] должен присутствовать хотя бы один из ‘text’ или ‘html’
Мой код:
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();
}
}
Это происходит потому, что $resultarr['mailBody']
не определено.
Вы уверены, что массив $resultarr
существует? Если так, то mailBody
элемент должен отсутствовать.
Вы можете поставить либо text
часть или html
часть или оба. Но если вы не предоставите ни то, ни другое, вы получите ошибку: At least one of 'text' or 'html' needs to exist in 'content'
,
В этом случае ни один не поставляется, потому что $resultarr['mailBody']
быть неопределенным вызывает text
а также html
элементы массива не определены.
Других решений пока нет …