包含在标题中的Sendgrid电子邮件数组

时间:2016-08-29 14:20:57

标签: php email sendgrid

我运行此脚本向每个用户发送一封电子邮件。邮件发送正常(每个用户一个),但在发送的电子邮件中,所有其他地址都显示在标题中。

$all_users = array(); // intialzie array

while ($usuario = mysqli_fetch_array($resultado, MYSQLI_ASSOC)) {

$usermail = $usuario['email']; 
$hash = $usuario['hash'];
mysqli_query($dbc, "UPDATE newsletter SET enviado = '1' WHERE email='$usermail' "); 

$all_users[] = $usermail; // push all emails first
}

// then send

try {
$email->setTos($all_users)
->setFrom("no_responder@test.com.ar")
->setFromName("test")
->setReplyTo("no_responder@test.com.ar")
->setSubject("Test")
->setHtml('test');

$result = $sendgrid->send($email);
echo "enviado";

} catch(\SendGrid\Exception $e) {
echo $e->getCode() . "\n";
foreach($e->getErrors() as $er) {
    echo $er;
}
}

?>

如何使用sendgrid(bcc - 盲目抄送)单独发送其他电子邮件?

1 个答案:

答案 0 :(得分:1)

您是否更新了SendGrid PHP library?最新版本使用v3 of the WebAPI,它可以纠正令人困惑的To:数组功能。

问题是,您现在正在做的是填充本机SMTP级别To,这就是您可以查看所有地址的原因。在v2 API中,您需要填充x-smtpapi字段的to数组,以确保SendGrid splits out all the addresses

我强烈建议您更新PHP库&利用v3 API消除了这种混淆,并允许您以更合理的方式设置每个收件人。