[英]SendGrid: Disable Clicktrack using Node
我正在使用sendgrid-nodejs庫通過 SendGrid 發送電子郵件。 我想在每封電子郵件的基礎上禁用點擊跟蹤。
我知道您可以在動態模板中包含一個屬性來禁用點擊跟蹤:
通過在 href 之前的 HTML 鏈接的錨點內包含 clicktracking
clicktracking=off
屬性,可以關閉單個鏈接的點擊跟蹤。 例如,不會跟蹤<a clicktracking=off href="http://example.com">link text</a>
。
但是,我希望以編程方式控制它。
根據 SendGrid 文檔,可以使用clicktrack 過濾器禁用點擊跟蹤:
{
"filters": {
"clicktrack": {
"settings": {
"enable": 0,
"enable_text": false
}
}
}
}
查看Mail 構造函數,我們似乎可以設置標題。 類型綁定表明它期望 header 值是一個字符串。
headers?: { [key: string]: string }
注意:我可以根據 SendGrid 的錯誤返回確認這一點(如果試圖傳遞一個對象):
{
"body": {
"errors": [
{
"message": "Invalid type. Expected: string, given: object.",
"field": "headers",
"help": "http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.headers"
}
]
}
}
無論我通過什么,似乎都沒有任何影響。 電子郵件已成功發送,但未禁用點擊跟蹤。
const { SENDGRID_KEY } = process.env
const mail = require('@sendgrid/mail')
mail.setApiKey(SENDGRID_KEY)
mail.send({
headers: {
// this doesn't have any impact
"X-SMTPAPI": JSON.stringify({
filters: {
clicktrack: {
settings: {
enable: 0,
enable_text: false
}
}
}
}),
// neither does this
"filters": JSON.stringify({
clicktrack: {
settings: {
enable: 0,
enable_text: false
}
}
}),
},
to: 'somebody@email.com',
from: 'nobody@email.com',
templateId: 'd-xxxxxxxxxxxxxxxxxxxxxxxx',
dynamic_template_data: {
subject: 'Hello World'
}
})
為什么這不起作用?
我找到了答案。 有一個可用的trackingSettings
屬性:
const { SENDGRID_KEY } = process.env
const mail = require('@sendgrid/mail')
mail.setApiKey(SENDGRID_KEY)
mail.send({
trackingSettings: {
clickTracking: {
enable: false,
enableText: false
}
},
to: 'somebody@email.com',
from: 'nobody@email.com',
templateId: 'd-xxxxxxxxxxxxxxxxxxxxxxxx',
dynamic_template_data: {
subject: 'Hello World'
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.