嗨,我正在使用php mailer Swiftmailer使用SMTP API通过SendGrid发送.我们可以将唯一的参数传递给SendGrid以帮助跟踪电子邮件.我已成功通过Swiftmailer传递了唯一的标头:
$headers = $message->getHeaders();
$headers->addTextHeader('AccountId', $accountId);
这些值已成功注入到已发送电子邮件的标头中,但它们并未被SendGrid传递回我的事件webhook或控制面板中.
我也尝试了一下,但是也没有用:
$headers = $message->getHeaders();
$args = ' {
"customerAccountNumber": "55555",
"activationAttempt": "1",
"New Argument 1": "New Value 1",
"New Argument 2": "New Value 2",
"New Argument 3": "New Value 3",
"New Argument 4": "New Value 4"
}';
$headers->addTextHeader('unique_args', $args);
这可能是SendGrid支持的一个问题,但是由于它与Swiftmailer有关,所以我想我会首先在这里尝试.谢谢!
解决方法:
SendGrid expects a JSON key/value structure in the X-SMTPAPI
header entry.
我有一个使用SwiftMailer 5.0.3的旧项目.这是我将类别值发送到SendGrid的方式:
$message->getHeaders()->addTextHeader('X-SMTPAPI', json_encode(array(
'category' => $category,
)));
将该模式应用于您的示例:
$headers = $message->getHeaders();
$args = array(
'unique_args' => array(
'AccountId' => $accountId,
"customerAccountNumber" => "55555",
"activationAttempt" => "1",
"New Argument 1" => "New Value 1",
"New Argument 2" => "New Value 2",
"New Argument 3" => "New Value 3",
"New Argument 4" => "New Value 4",
),
);
$headers->addTextHeader('X-SMTPAPI', json_encode($args));
标签:sendgrid,php,swiftmailer 来源: https://codeday.me/bug/20191026/1934764.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。