X-SMTPAPI Extended Field
X-SMTPAPI เป็นวิธีการที่ EngageLab จัดเตรียมไว้สำหรับนักพัฒนาเพื่อปรับแต่งการทำให้เป็นส่วนตัวของอีเมล
EngageLab จะดึงข้อมูลในส่วนหัวที่มี key X-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)
            
            วิธีการ 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 จะทำการตรวจสอบรูปแบบของข้อมูลในส่วนหัวที่มี key X-SMTPAPI หากไม่เป็นไปตามข้อกำหนดข้างต้น จะเกิดข้อผิดพลาด xsmtpapi error
โปรดทราบ:
เมื่อใช้ SMTP, X-SMTPAPI ต้องเป็นฟิลด์สุดท้ายในส่วนหัว มิฉะนั้นอาจเกิดข้อผิดพลาด xsmtpapi error
เมื่อใช้ SMTP, X-SMTPAPI ต้องถูกเข้ารหัสด้วย base64 มิฉะนั้น หลังจากคำขอ SMTP สำเร็จ อีเมลจะถูก EngageLab สกัดกั้นระหว่างการส่งและถือว่าไม่ถูกต้อง - ข้อผิดพลาด worker:invalid XSMTP-API
เมื่อใช้ API, ให้ส่ง JSON string โดยตรงโดยไม่ต้องเข้ารหัส base64
ความยาวทั้งหมดของ X-SMTPAPI ไม่สามารถเกิน 1M
            
            โครงสร้างและการใช้งาน JSON string ที่ห่อหุ้มใน value มีดังนี้:
to ประกอบด้วยอาร์เรย์ของที่อยู่อีเมลผู้รับ ระบุผู้รับของอีเมล
              
              
    {
        "to": ["ben@engagelab.com", "joe@engagelab.com"]
    }
            
            หมายเหตุ:
- toที่นี่จะเขียนทับพารามิเตอร์ผู้รับ- to
- จำนวนผู้รับใน toที่นี่ไม่สามารถเกิน 1000
- หากส่วนหัวของอีเมลมีขนาดน้อยกว่า 1MB จะไม่มีการดำเนินการใดๆ
- หากส่วนหัวของอีเมลมีขนาดใหญ่กว่า 1MB จะตรวจสอบตามจำนวนที่อยู่ที่ส่งมา หากแต่ละที่อยู่มีขนาดน้อยกว่า 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": { # Unsubscribe tracking
    "settings": { "enable": "1" }
    },
    "open_tracking": { # Open tracking
    "settings": { "enable": "1" }
    },
    "click_tracking": { # Click tracking
    "settings": { "enable": "1" }
    }
    }
}
            
            page_id
คำอธิบายการใช้งาน:
- page_id สอดคล้องกับฟิลด์ ID ของหน้าการยกเลิกการสมัครเฉพาะที่สร้างขึ้นภายใต้ "การตั้งค่าการส่ง" - "การตั้งค่าการยกเลิกการสมัคร" - "หน้าการยกเลิกการสมัคร" ในคอนโซล EngageLab 
- ลูกค้าจำเป็นต้องสร้างหน้าการยกเลิกการสมัครในคอนโซล EngageLab ล่วงหน้าก่อนที่จะตั้งค่า page_id ให้กับ ID ที่สอดคล้องกันในระหว่างการส่ง 
- เมื่อส่ง ให้ส่งพารามิเตอร์ผ่าน page_id โดยตั้งค่าให้กับ ID ของหน้าการยกเลิกการสมัครเฉพาะ ในขณะนี้ ลิงก์การยกเลิกการสมัครและหน้าการยกเลิกการสมัครจะใช้ภาษาหรือสไตล์ที่กำหนดค่าไว้ 
- ลำดับความสำคัญของพารามิเตอร์ page_id สูงกว่าการตั้งค่าหน้าการยกเลิกการสมัครเริ่มต้นที่สอดคล้องกับ API_USER ระหว่างการส่ง 
- รองรับรูปแบบอาร์เรย์เพื่อระบุหน้าการยกเลิกการสมัคร ซึ่งต้องตรงกับจำนวนผู้รับใน - toของ xsmtpapi ตำแหน่งในอาร์เรย์จะสอดคล้องกับแต่ละ "ผู้รับ" ตามตำแหน่งของพวกเขาใน "อาร์เรย์ผู้รับ" หากจำนวนไม่ตรงกับ- toจะใช้ page_id เริ่มต้นภายใต้ apiUser นี้แทน
ดูตัวอย่างด้านล่าง:
              
              x_smtpapi =
{
    "to": ["xxx@qq.com", "xxx@hotmail.com", "xxx@gmail.com"],
    "sub":{"%name%": ["Joe", "Ben", "Michael"]},
    "settings": 
    {
        "unsubscribe": 
            {"page_id": [1, 2, 3]}
    }
}
            
            







