Я хочу использовать Sendgrid для одновременной отправки двух писем. Приведенный ниже код работает для одного электронного письма. Я хотел бы отправить второй, не повторяя весь этот код. Возможно ли это сделать, возможно, добавив другое значение в CURLOPT_POSTFIELDS, которое является единственным изменяющимся полем?
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.sendgrid.com/v3/mail/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\n \"personalizations\": [\n {\n \"to\": [\n {\n \"email\": \"[email protected]\"\n }\n ],\n \"subject\": \"Test\"\n }\n ],\n \"from\": {\n \"email\": \"[email protected]\"\n },\n \"content\": [\n {\n \"type\": \"text/html\",\n \"value\": \"Hello world!"\n }\n ]\n}",
CURLOPT_HTTPHEADER => array(
"authorization: Bearer SG.1234123412341234",
"cache-control: no-cache",
"content-type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
?>






Все, что вам нужно сделать, это добавить несколько объектов «в» в json персонализации. Как показано ниже -
"to":["email":"[email protected]"],"to":["email":"[email protected]"] ....
В этом случае это будет отправка другого содержимого электронной почты другому получателю. Я попытался добавить новый объект «персонализации» в JSON, но, похоже, он не работает.
что происходит, когда вы используете новый объект? он отправляет только на первое электронное письмо?
Это может помочь: github.com/sendgrid/sendgrid-php/blob/master/examples/helper s /… Другими словами, да, отправьте несколько персонализаций (разбейте этот json на массив и добавьте второй в массив для второго электронного письма и так далее, затем повторно json закодируйте его для вызова api).