使用 Swiftmailer 将唯一参数传递给 SendGrid
Passing Unique Arguments to SendGrid Using Swiftmailer
您好,我正在使用 php 邮件程序 Swiftmailer 通过 SendGrid 使用 SMTP API 进行发送。我们可以将唯一参数传递给 SendGrid 以帮助跟踪电子邮件。我已经成功地通过 Swiftmailer 传递了独特的 headers:
$headers = $message->getHeaders();
$headers->addTextHeader('AccountId', $accountId);
虽然这些值已成功注入到已发送电子邮件的 header 中,但 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 相关,我想我会先在这里尝试。谢谢!
方法addTextHeader是一个值
$headers->addTextHeader('unique_args', $args);
您应该像这样使用 addParameterizedHeader 方法
$headers->addParameterizedHeader(
["customerAccountNumber" => "55555"],
["activationAttempt" => "1"]
);
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));
您好,我正在使用 php 邮件程序 Swiftmailer 通过 SendGrid 使用 SMTP API 进行发送。我们可以将唯一参数传递给 SendGrid 以帮助跟踪电子邮件。我已经成功地通过 Swiftmailer 传递了独特的 headers:
$headers = $message->getHeaders();
$headers->addTextHeader('AccountId', $accountId);
虽然这些值已成功注入到已发送电子邮件的 header 中,但 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 相关,我想我会先在这里尝试。谢谢!
方法addTextHeader是一个值
$headers->addTextHeader('unique_args', $args);
您应该像这样使用 addParameterizedHeader 方法
$headers->addParameterizedHeader(
["customerAccountNumber" => "55555"],
["activationAttempt" => "1"]
);
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));