【问题标题】:Sendgrid emails array included in the header标题中包含的 Sendgrid 电子邮件数组
【发布时间】:2016-08-29 14:20:56
【问题描述】:

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

$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 单独发送其他电子邮件时隐藏它们(密件抄送 - 密件抄送)?

【问题讨论】:

  • 已尝试,错误 400 缺少目标电子邮件
  • 您仍然必须至少拥有一个To:。发给自己,或者黑洞地址。

标签: php email sendgrid


【解决方案1】:

你更新你的SendGrid PHP library了吗?最新版本使用v3 of the WebAPI,纠正了令人困惑的 To: 数组功能。

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

我强烈建议您更新您的 PHP 库并利用 v3 API,这可以消除这种混淆,并让您以更合乎逻辑的方式设置每个收件人。

【讨论】:

  • 脚本开头有什么我应该更改的吗?要求(“sendgrid-php/sendgrid-php.php”); $sendgrid = new SendGrid('myapikey'); $email = new SendGrid\Email();
  • 这是我根据更新日志所拥有的版本,v3.2.0
  • Per the readme 库的最新版本是 5,并且还需要最新版本的 PHP。然后,您需要重新构建脚本以使用新功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 2016-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
相关资源
最近更新 更多