我正在使用此脚本通过cURL发送电子邮件。 我没有使用sendgrid库,我已经查看了API文档。我希望选择发送到多个"到"地址。我该怎么做呢?
$params = array(
'to' => $to,
'subject' => $title,
'text' => 'Subject',
'from' => 'mail@mail.com',
);
$request = $url.'api/mail.send.json';
$headr = array();
// set authorization header
$headr[] = 'Authorization: Bearer '.$pass;
$session = curl_init($request);
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// add authorization header
curl_setopt($session, CURLOPT_HTTPHEADER,$headr);
$response = curl_exec($session);
curl_close($session);
答案 0 :(得分:1)
查看SendGrid API文档(例如,针对v2 API):https://sendgrid.com/docs/API_Reference/Web_API/mail.html
这也可以作为数组传递,以发送到多个位置。 示例:到[] = a@mail.com&到[] = b@mail.com
所以你可以把这个$加到param作为数组:
$to = ["one@email.com", "two@email.com"]; // etc.
答案 1 :(得分:1)
尝试
$params = array(
'to[0]' => $to1,
'to[1]' => $to2,
);
它对我有用。
答案 2 :(得分:0)
以下是SendGrid在文档中执行此操作的方法:Sending a Basic Email to Multiple Recipients。
在您的示例中,to
字符串是本机SMTP TO:
值。因此,您无法使用数组,但您可以提供逗号分隔的多个地址字符串。这些消息中的每一个都将由SendGrid处理,并且每个接收者将在经典"会话中看到彼此的所有地址。风格。
如果您想利用SendGrid"将相同的电子邮件明确地发送给多个人"能力,您需要利用上述v3 API。
答案 3 :(得分:0)
对于API V2存储电子邮件,如:
$json_string = array(
'to' => array(
'amin.charoliya@conversionbug.com', 'amincharoliya@gmail.com'
),
'category' => 'test'
);
然后将其添加到$ param数组中:
'x-smtpapi' => json_encode($json_string),
请注意,在这种情况下,正常地址,将不会收到电子邮件。 详情请访问: https://sendgrid.com/docs/Integrate/Code_Examples/v2_Mail/php.html
答案 4 :(得分:0)
尝试一下:
$params = array(
'to[0]' => 'abc@email.com',
'to[1]' => 'xyz@email.com',
'subject' => $title,
'text' => 'Subject',
'from' => 'mail@mail.com',
);
$request = $url.'api/mail.send.json';
$headr = array();
// set authorization header
$headr[] = 'Authorization: Bearer '.$pass;
$session = curl_init($request);
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// add authorization header
curl_setopt($session, CURLOPT_HTTPHEADER,$headr);
$response = curl_exec($session);
curl_close($session);
您要做的唯一更改就是添加此代码=>
'to[0]' => 'abc@email.com',
'to[1]' => 'xyz@email.com',
答案 5 :(得分:0)
根据 Yossi 的回答,我做到了...
//if we have an array of email addresses, add a to[i] param for each
if (is_array($to)) {
$i=0;
foreach($to as $t) $params['to['.$i++.']']=$t;
//just one email, can add simply like this
} else {
$params['to']=$to;
}