X-SMTPAPI 拡張フィールド
X-SMTPAPIは、EngageLabが開発者向けに提供するメールパーソナライズをカスタマイズするための方法です。
EngageLabは、キー X-SMTPAPI
を持つヘッダーフィールド情報を取得します。このヘッダーフィールドが見つかった場合、その値を解析してメール処理方法を変更します。開発者は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)
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)))
SMTPサーバーは、キー X-SMTPAPI を持つヘッダーフィールド情報に対してフォーマットチェックを行います。上記の要件を満たさない場合、xsmtpapi error エラーが報告されます。
注意事項:
SMTPを使用する場合、X-SMTPAPIはヘッダーの最後のフィールドである必要があります。そうでない場合、xsmtpapi error エラーが発生する可能性があります。
SMTPを使用する場合、X-SMTPAPIはbase64エンコードでカプセル化する必要があります。そうしないと、SMTPリクエストが成功した後でも、EngageLabが配信中にこれをインターセプトし、無効なメールとして分類します - worker:invalid XSMTP-API エラー。
APIを使用する場合、JSON文字列を直接渡し、base64エンコードは不要です。
X-SMTPAPIの全体の長さは1Mを超えてはなりません。
値にカプセル化されたJSON文字列の構造と使用方法は以下の通りです:
to
は受信者アドレスの配列を含み、メールの受信者を指定します。
{
"to": ["ben@engagelab.com", "joe@engagelab.com"]
}
注意:
- ここでの
to
は受信者パラメータto
を上書きします。 - ここでの
to
に含まれる受信者の数は1000を超えてはなりません。 - メールヘッダーが1MB未満の場合、処理は行われません。
- メールヘッダーが1MBを超える場合、送信されたアドレス数に基づいて、各アドレスが10KB未満であるかを確認します。10KB未満であれば送信可能、10KBを超える場合は送信不可です。
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 円です。
apps
はアプリケーション名(unsubscribe, open, click)とその設定のセットを含む連想配列です。 これらの設定はユーザーアカウント内の設定を上書きします。
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内の受信者数と一致する必要があります。配列位置は「受信者配列」での各「受信者」と一対一で対応します。一致しない場合、この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]}
}
}