ข้ามไปยังเนื้อหา

เกตเวย์ SMTP

เกตเวย์ SMTP รับการส่งเมลมาตรฐานและส่งต่อแต่ละข้อความไปยัง Messaging API v2 Notify ในรูปแบบอีเมลธุรกรรม ใช้เมื่อเครื่องมือเมลที่มีอยู่ — MTA, mailer ของเฟรมเวิร์ก, SDK — ง่ายต่อการเชื่อมต่อมากกว่าการส่งคำขอ JSON ไปยัง API

วิธีการทำงาน

Anchor link to
any SMTP client smtp gateway Messaging API v2
──────────────── ──────> ──────────────── ──────> ─────────────────
submission STARTTLS gRPC Notify
AUTH PLAIN + AUTH PLAIN Authorization: Token
  1. ไคลเอนต์เชื่อมต่อกับ smtp.pushwoosh.com บนพอร์ต 587 อัปเกรดการเชื่อมต่อเป็น TLS ด้วย STARTTLS จากนั้นตรวจสอบสิทธิ์ด้วย AUTH PLAIN
  2. เกตเวย์จะแยกวิเคราะห์ข้อความ MIME และสร้างคำขอ Notify ด้วย platforms: ["EMAIL"] และ message_type: TRANSACTIONAL
  3. โทเค็น API จาก AUTH PLAIN จะถูกส่งต่อไปยัง Messaging API เป็นส่วนหัว Authorization การตรวจสอบโทเค็น การจับคู่แอปพลิเคชัน ตัวตนผู้ส่ง และการจัดการการตีกลับทั้งหมดจะเกิดขึ้นที่ฝั่ง API
การตั้งค่า
ค่า
โฮสต์smtp.pushwoosh.com
พอร์ต587 (SMTP submission)
TLSSTARTTLS — จำเป็นต้องทำก่อน AUTH
การยืนยันตัวตนAUTH PLAIN

การตรวจสอบสิทธิ์

Anchor link to

AUTH PLAIN ใช้ข้อมูลประจำตัวของ Pushwoosh สองอย่าง

ฟิลด์ AUTH
ค่า Pushwoosh
usernameรหัสแอปพลิเคชัน ตัวอย่างเช่น XXXXX-XXXXX
passwordโทเค็น Server API

AUTH จะถูกปฏิเสธหากอยู่นอก TLS โทเค็นจะไม่ปรากฏในข้อความ — จะใช้เพื่ออนุญาตการเรียก Notify ที่ต้นทางเท่านั้น

การจับคู่ข้อความกับ Notify

Anchor link to
ฟิลด์ MIME หรือ SMTP
ฟิลด์ Notify
RCPT TOtarget.users.list — Pushwoosh จะแปลงที่อยู่เหล่านี้เป็นผู้สมัครสมาชิก
username ของ AUTHapplication
ส่วนหัว Subject:email_payload.subject["default"] (ถอดรหัส RFC 2047)
ส่วนหัว From:email_payload.fromname และ email
ส่วน HTMLemail_payload.body (จะถูกเลือกใช้เมื่อมีทั้งสองส่วน)
ส่วนข้อความธรรมดาemail_payload.body (ใช้เมื่อไม่มี HTML)
MAIL FROMถูกละเว้น — Pushwoosh จะใช้ตัวตนผู้ส่งของตนเองและจัดการการตีกลับเอง

ทุกข้อความจะถูกส่งด้วย schedule.send_date: now

ข้อจำกัด

Anchor link to
ข้อจำกัด
ค่า
ขนาดข้อความสูงสุด25 MiB
จำนวนผู้รับสูงสุดต่อซองจดหมาย (RCPT TO)50

การจับคู่ข้อผิดพลาด

Anchor link to

รหัสสถานะ gRPC ที่ส่งคืนโดย Messaging API จะถูกแปลเป็นรหัสตอบกลับ SMTP มาตรฐานเพื่อให้ไคลเอนต์ SMTP ใด ๆ แสดงข้อผิดพลาดที่มีความหมาย

สถานะ gRPC ต้นทาง
การตอบกลับ SMTP
ความหมาย
Unauthenticated535 5.7.8รหัสแอปพลิเคชันหรือโทเค็น API ไม่ถูกต้อง
PermissionDenied550 5.7.1โทเค็นไม่มีสิทธิ์สำหรับแอปพลิเคชันนี้
InvalidArgument / FailedPrecondition / OutOfRange550 5.6.0เนื้อหา MIME ไม่ถูกต้อง (เช่น ไม่มีหัวเรื่องหรือเนื้อหา)
NotFound550 5.1.1ไม่พบแอปพลิเคชันหรือผู้รับ
ResourceExhausted452 4.5.3ถึงขีดจำกัดอัตราแล้ว — ลองอีกครั้งในภายหลัง
DeadlineExceeded / Unavailable451 4.4.1ข้อผิดพลาดชั่วคราวจากต้นทาง — ลองอีกครั้งในภายหลัง
ความล้มเหลวอื่น ๆ451 4.5.0ข้อผิดพลาดภายในชั่วคราว — ลองอีกครั้งในภายหลัง

รหัสในช่วง 4xx เป็นข้อผิดพลาดชั่วคราวและไคลเอนต์ควรลองอีกครั้ง รหัสในช่วง 5xx เป็นข้อผิดพลาดถาวรและต้องมีการแก้ไขที่ฝั่งไคลเอนต์

ตัวอย่าง: การส่งด้วย swaks

Anchor link to
Terminal window
swaks --server smtp.pushwoosh.com:587 \
--auth-user "XXXXX-XXXXX" \
--auth-password "YOUR_API_TOKEN" \
--tls \
--from from@example.com \
--to user@example.com \
--header "Subject: Hello from SMTP gateway" \
--body "Plain-text body"

ส่วนหัว From: ในเนื้อหา MIME คือสิ่งที่ไปถึง Pushwoosh — ส่วนซองจดหมาย --from (MAIL FROM) จะถูกทิ้งไป

หมายเหตุ

Anchor link to
  • เกตเวย์เป็นแบบ stateless และไม่เก็บข้อความ เมื่อส่งต่อไปแล้ว การจัดส่งจะอยู่ภายใต้การดูแลของ Messaging API
  • การตีกลับ การร้องเรียน และลิงก์ยกเลิกการสมัครจะได้รับการจัดการโดย Pushwoosh เช่นเดียวกับอีเมลธุรกรรมอื่น ๆ
  • สำหรับการส่งแคมเปญ (กลุ่มเป้าหมาย การตั้งเวลา A/B) ให้ใช้ Notify โดยตรง — เกตเวย์ SMTP ใช้สำหรับการส่งเท่านั้น

ดูเพิ่มเติม

Anchor link to