Sendgrid电子邮件批量发送失败';不要发送PHP
Sendgrid电子邮件批量发送失败';不要发送PHP,php,sendgrid-api-v3,bulk-email,Php,Sendgrid Api V3,Bulk Email,$email变量将参数设置为电子邮件的集合 示例:$email=”abc@mail.com,info@abc.com,def@gmail.com“ 我是怎么做到的?
$email
变量将参数设置为电子邮件的集合
示例:$email=”abc@mail.com,info@abc.com,def@gmail.com“
我是怎么做到的?
Heyho Gi
您可以使用improde()将数组转换为字符串,这样您可以将电子邮件作为数组获取,然后您可以说$email=improde(“,”,$emails)
和$email将是abc@mail.com,info@abc.com,def@gmail.com
。但我不明白你为什么用外人公司给他打点!您可以在您的机器上本地执行此操作!不要与其他公司共享太多数据;)
~Tima)explode()
使用,
发送电子邮件值以将其转换为数组
b) 在此数组上应用循环并发送邮件
c) 确保检查实际值,而不是$\u POST['send']
array(
"email" => $email,
"name" => $name
)
您到底想要实现什么?如果任何变量应该以另一种格式给出,是什么阻止你更改代码中的格式?谢谢你,兄弟,你减轻了我的压力:)@Gihan很高兴帮助你。顺便说一句,Sendgrid API提供了一次性发送多封电子邮件的功能,而不是循环发送(但我通过研究得到的是,该功能是付费的)。你也可以看看,我需要与你的答案相反的方法,所以我使用explode()将字符串转换为数组谢谢你的答案
array(
"email" => $email,
"name" => $name
)
<?php
if (!empty($_POST['email']) && !empty($_POST['subject']))
{
$emails = explode(',',$_POST['email']);
$subject = $_POST['subject'];
$body = $_POST['message'];
foreach($emails as $email){
$data = array(
"personalizations" => array(
array(
"to" => array(
array(
"email" => $email,
"name" => $name
)
)
)
) ,
"from" => array(
"email" => $sender
) ,
"subject" => $subject,
"content" => array(
array(
"type" => "text/html",
"value" => $body
)
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.sendgrid.com/v3/mail/send");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
}
}
?>