เกตเวย์ 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- ไคลเอนต์เชื่อมต่อกับ
smtp.pushwoosh.comบนพอร์ต587อัปเกรดการเชื่อมต่อเป็น TLS ด้วยSTARTTLSจากนั้นตรวจสอบสิทธิ์ด้วยAUTH PLAIN - เกตเวย์จะแยกวิเคราะห์ข้อความ MIME และสร้างคำขอ
Notifyด้วยplatforms: ["EMAIL"]และmessage_type: TRANSACTIONAL - โทเค็น API จาก
AUTH PLAINจะถูกส่งต่อไปยัง Messaging API เป็นส่วนหัวAuthorizationการตรวจสอบโทเค็น การจับคู่แอปพลิเคชัน ตัวตนผู้ส่ง และการจัดการการตีกลับทั้งหมดจะเกิดขึ้นที่ฝั่ง API
Endpoint
Anchor link to| การตั้งค่า | ค่า |
|---|---|
| โฮสต์ | smtp.pushwoosh.com |
| พอร์ต | 587 (SMTP submission) |
| TLS | STARTTLS — จำเป็นต้องทำก่อน AUTH |
| การยืนยันตัวตน | AUTH PLAIN |
การตรวจสอบสิทธิ์
Anchor link toAUTH PLAIN ใช้ข้อมูลประจำตัวของ Pushwoosh สองอย่าง
| ฟิลด์ AUTH | ค่า Pushwoosh |
|---|---|
username | รหัสแอปพลิเคชัน ตัวอย่างเช่น XXXXX-XXXXX |
password | โทเค็น Server API |
AUTH จะถูกปฏิเสธหากอยู่นอก TLS โทเค็นจะไม่ปรากฏในข้อความ — จะใช้เพื่ออนุญาตการเรียก Notify ที่ต้นทางเท่านั้น
การจับคู่ข้อความกับ Notify
Anchor link to| ฟิลด์ MIME หรือ SMTP | ฟิลด์ Notify |
|---|---|
RCPT TO | target.users.list — Pushwoosh จะแปลงที่อยู่เหล่านี้เป็นผู้สมัครสมาชิก |
username ของ AUTH | application |
ส่วนหัว Subject: | email_payload.subject["default"] (ถอดรหัส RFC 2047) |
ส่วนหัว From: | email_payload.from — name และ email |
| ส่วน HTML | email_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 | ความหมาย |
|---|---|---|
Unauthenticated | 535 5.7.8 | รหัสแอปพลิเคชันหรือโทเค็น API ไม่ถูกต้อง |
PermissionDenied | 550 5.7.1 | โทเค็นไม่มีสิทธิ์สำหรับแอปพลิเคชันนี้ |
InvalidArgument / FailedPrecondition / OutOfRange | 550 5.6.0 | เนื้อหา MIME ไม่ถูกต้อง (เช่น ไม่มีหัวเรื่องหรือเนื้อหา) |
NotFound | 550 5.1.1 | ไม่พบแอปพลิเคชันหรือผู้รับ |
ResourceExhausted | 452 4.5.3 | ถึงขีดจำกัดอัตราแล้ว — ลองอีกครั้งในภายหลัง |
DeadlineExceeded / Unavailable | 451 4.4.1 | ข้อผิดพลาดชั่วคราวจากต้นทาง — ลองอีกครั้งในภายหลัง |
| ความล้มเหลวอื่น ๆ | 451 4.5.0 | ข้อผิดพลาดภายในชั่วคราว — ลองอีกครั้งในภายหลัง |
รหัสในช่วง 4xx เป็นข้อผิดพลาดชั่วคราวและไคลเอนต์ควรลองอีกครั้ง รหัสในช่วง 5xx เป็นข้อผิดพลาดถาวรและต้องมีการแก้ไขที่ฝั่งไคลเอนต์
ตัวอย่าง: การส่งด้วย swaks
Anchor link toswaks --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 ใช้สำหรับการส่งเท่านั้น