X-SMTPAPI 擴展字段

最新更新:2023-03-14

X-SMTPAPI 是 EngageLab 為開發者提供的郵件個性化定制的處理方式。

EngageLab 會檢索 keyX-SMTPAPI的頭域資訊,如果發現含有此頭域,則解析 value 的值用來改變郵件的處理方式。 開發者在使用 SMTP 和 API 接入時都可以使用此字段。

API 方式:

x_smtpapi = { "to": ["d@hotmail.com",'i@hotmail.com'], "sub": { "%name%": ['jack', 'rose'], "%money%": ['199', '299'], }, } params['xsmtpapi'] = simplejson.dumps(x_smtpapi)
          x_smtpapi = {
    "to": ["d@hotmail.com",'i@hotmail.com'],
    "sub": {
        "%name%": ['jack', 'rose'],
        "%money%": ['199', '299'],
    },
}

params['xsmtpapi'] = simplejson.dumps(x_smtpapi)

        
此代碼塊在浮窗中顯示

SMTP 方式:

x_smtpapi = { "to": ["d@hotmail.com",'i@hotmail.com'], "sub": { "%name%": ['jack', 'rose'], "%money%": ['199', '299'], }, } msg['X-SMTPAPI'] = Header(base64.b64encode(simplejson.dumps(x_smtpapi)))
          x_smtpapi = {
    "to": ["d@hotmail.com",'i@hotmail.com'],
    "sub": {
        "%name%": ['jack', 'rose'],
        "%money%": ['199', '299'],
    },
}

msg['X-SMTPAPI'] = Header(base64.b64encode(simplejson.dumps(x_smtpapi)))

        
此代碼塊在浮窗中顯示
SMTP 服務器會對郵件中 key 為`X-SMTPAPI`的頭域資訊做格式檢查。如果不符合上述要求,則會報`xsmtpapi error`的錯誤。 需要注意的是: 1. SMTP 調用時,X-SMTPAPI 必須是頭域欄位的最後一個。否則,可能導致`xsmtpapi error`的錯誤 2. SMTP 調用時,X-SMTPAPI 必須是 base64 編碼封裝。否則,SMTP 成功請求後,在投遞中被 EngageLab 攔截判為無效郵件- `worker:invalid XSMTP-API`的錯誤 3. API 調用時,直接傳入 JSON 字串即可,無需 base64 編碼封裝 4. X-SMTPAPI 的總長度不能超過 1M
          SMTP 服務器會對郵件中 key 為`X-SMTPAPI`的頭域資訊做格式檢查。如果不符合上述要求,則會報`xsmtpapi error`的錯誤。
需要注意的是:

1. SMTP 調用時,X-SMTPAPI 必須是頭域欄位的最後一個。否則,可能導致`xsmtpapi error`的錯誤
2. SMTP 調用時,X-SMTPAPI 必須是 base64 編碼封裝。否則,SMTP 成功請求後,在投遞中被 EngageLab 攔截判為無效郵件- `worker:invalid XSMTP-API`的錯誤
3. API 調用時,直接傳入 JSON 字串即可,無需 base64 編碼封裝
4. X-SMTPAPI 的總長度不能超過 1M

        
此代碼塊在浮窗中顯示

value 封裝的 JSON 字串的結構和用途見下:

to 含有收件人地址的數組,指定郵件的收件人.

{ "to": ["ben@engagelab.com", "joe@engagelab.com"] }
          
    {
        "to": ["ben@engagelab.com", "joe@engagelab.com"]
    }

        
此代碼塊在浮窗中顯示

注意:

  • 這裡的to會覆蓋收件人參數to
  • 這裡的to的收件人個數不能超過 100

sub 是一個關聯數組。 它的key是「變數」,value是「替換值數組」.

用法解釋:每一個「變數」對應一個「替換值數組」,在做郵件內容替換時,每一個「收件人」按其在「收件人數組」中出現的位置使用「替換值數組」中相應位置的值來替換「變數」的值。

參見如下示例:

# 郵件內容 親愛的%name%: 您好! 您本月在 XX 的消費金額為:%money%元。 #--------------------------------------------------- # X-SMTPAPI { "to": ["ben@engagelab.com", "joe@engagelab.com"], "sub": { "%name%": ["Ben", "Joe"], "%money%":[288, 497] } #--------------------------------------------------- # ben@engagelab.com 收到的郵件: 親愛的 Ben: 您好!您本月在 xx 的消費金額為:288 元。 #--------------------------------------------------- # joe@engagelab.com 收到的郵件: 親愛的 Joe: 您好! 您本月在 xx 的消費金額為:497 元。
          
# 郵件內容

親愛的%name%:

您好! 您本月在 XX 的消費金額為:%money%元。

#---------------------------------------------------

# X-SMTPAPI

{
"to": ["ben@engagelab.com", "joe@engagelab.com"],
"sub":
{
"%name%": ["Ben", "Joe"],
"%money%":[288, 497]
}

#---------------------------------------------------

# ben@engagelab.com 收到的郵件:

親愛的 Ben:

您好!您本月在 xx 的消費金額為:288 元。

#---------------------------------------------------

# joe@engagelab.com 收到的郵件:

親愛的 Joe:

您好! 您本月在 xx 的消費金額為:497 元。

        
此代碼塊在浮窗中顯示

apps是包含了一組應用名(退訂、打開、點擊)和它們設定的關聯數組。 這些設定會覆蓋它們在用戶帳戶中的設定。

x_smtpapi = { "to": ["xxx@qq.com"], "sub": {"%name%": ["Joe"]}, "filters": { "subscription_tracking": { # 退訂追蹤 "settings": { "enable": "1" } }, "open_tracking": { # 打開追蹤 "settings": { "enable": "1" } }, "click_tracking": { # 點擊追蹤 "settings": { "enable": "1" } } }
          
x_smtpapi =
{

    "to": ["xxx@qq.com"],
    "sub": {"%name%": ["Joe"]},
    "filters": {
    "subscription_tracking": { # 退訂追蹤
    "settings": { "enable": "1" }
    },
    "open_tracking": { # 打開追蹤
    "settings": { "enable": "1" }
    },
    "click_tracking": { # 點擊追蹤
    "settings": { "enable": "1" }
    }
}

        
此代碼塊在浮窗中顯示

page_id

用法解釋:

  • page_id 對應的是 EngageLab 控制台“發送設定”-“退訂設定”-“退訂頁面”下所創建的某個退訂頁面的 ID 欄位。

  • 客戶需要在 EngageLab 控制台預先創建退訂頁面,之後才能在發送時給 page_ id 設定成對應的 ID.

  • 發送時通過 page_id 傳參,值設定為某個退訂頁面的 ID,此時退訂連結、退訂頁面均為所配寘的語言及樣式。

  • page_id 傳參的優先順序高於發送時 API_USER 所對應的默認的退訂頁面設定。

  • 支持數組形式來指定退訂頁面,需與 xsmtpapi 中的 to 個數一致。 數組位置和每一個「收件人」按其在「收件人數組」中出現的位置進行一一對應。 如果出現和 to 的個數不匹配的情况,則改用使用客戶此 apiUser 下的默認 page_id.

參見如下示例:

x_smtpapi = { "to": ["xxx@qq.com", "xxx@hotmail.com", "xxx@gmail.com"], "sub":{"%name%": ["Joe", "Ben", "Michael"]}, "settings": { "unsubscribe": {"page_id": [1, 2, 3]} } }
          x_smtpapi =
{
    "to": ["xxx@qq.com", "xxx@hotmail.com", "xxx@gmail.com"],
    "sub":{"%name%": ["Joe", "Ben", "Michael"]},
    "settings": 
    {
        "unsubscribe": 
            {"page_id": [1, 2, 3]}
    }
}

        
此代碼塊在浮窗中顯示
在文档中心打开