使用PHP中的SendGrid向邮件列表中的每个收件人发送单独的电子邮件
我发送电子邮件是为了通知我的用户系统中的某些更改 为了提高可交付性,我希望单独发送每封电子邮件,而不是作为一封带有长cc\bcc列表的电子邮件发送 我遇到的所有教程都谈到插件,以及将值数组绑定到消息中占位符的复杂方法 我正在寻找一种非常简单的方法来实现这一点,使用对SendGrid服务器的单个调用,最好使用XSMTP-API头,并且没有任何不必要的复杂情况 我已经在网上搜索了几个小时的解决方案,我可以自信地说,似乎没有适合我的解决方案,所以我不得不打开一个新的线程,尽管我很清楚这是一个常见的话题,我也读过多个关于类似问题的线程。 不幸的是,他们中没有一个对我有帮助 由于我的生产服务器不支持名称空间,我仅限于sendgrid的旧版本或swiftMailer库 提前感谢,, O 伪代码:使用PHP中的SendGrid向邮件列表中的每个收件人发送单独的电子邮件,php,email,sendgrid,Php,Email,Sendgrid,我发送电子邮件是为了通知我的用户系统中的某些更改 为了提高可交付性,我希望单独发送每封电子邮件,而不是作为一封带有长cc\bcc列表的电子邮件发送 我遇到的所有教程都谈到插件,以及将值数组绑定到消息中占位符的复杂方法 我正在寻找一种非常简单的方法来实现这一点,使用对SendGrid服务器的单个调用,最好使用XSMTP-API头,并且没有任何不必要的复杂情况 我已经在网上搜索了几个小时的解决方案,我可以自信地说,似乎没有适合我的解决方案,所以我不得不打开一个新的线程,尽管我很清楚这是一个常见的话题
$conn = $PDOStaticClass::getInstance();
$dbHelper = new DbPdoHelper($conn);
$mailList = $dbHelper->getMailinglist();
//$mailList now contains an associative array with the email addresses with of my clients, what's next?
使用SendGrid SMTPAPI标头,这非常简单。当您发送邮件时,只需在
X-SMTPAPI
标题中的地址中添加一个数组,它将自动为列表中的每个人(而不是密件抄送或抄送)生成一封新的电子邮件。例如:
"X-SMTPAPI": {
"to": [
"ben@example.com",
"Joe Smith <joe@example.com>"
]
}
感谢swift,虽然我确实需要启用名称空间来运行代码,不是吗?不幸的是,我的生产服务器正在运行PHP5.2,因此我无法使用任何需要名称空间的功能和库。是否有类似的解决方案使用swiftMail库?。非常感谢,O。SendGrid库只是包装了SwiftMailer,所以您可以只看代码就知道它是如何工作的。基本上,您应该按照我在答案前半部分中的建议,添加一个X-SMTPAPI
标题()
$conn = $PDOStaticClass::getInstance();
$dbHelper = new DbPdoHelper($conn);
$sendgrid = new SendGrid('username', 'password');
$mail = new SendGrid\Mail();
$mail->setRecipientsInHeader(true);
$mailList = $dbHelper->getMailinglist();
foreach($mailList as $email) {
$mail->addTo($email);
}
// ...
$sendgrid->smtp->send($mail);