ส่งอีเมลผ่าน SMTP

ตั้งแอปใดที่ใช้ SMTP ให้ส่งผ่าน Banger ตั้งแต่ Supabase Auth, WordPress ถึงตัวส่งอีเมลของเฟรมเวิร์ก ใช้คีย์ Banger API เป็นรหัสผ่าน ทุกข้อความส่งจากโดเมนของคุณและแสดงในบันทึก

การตั้งค่า

โฮสต์submit.bangermail.com
พอร์ต465 ใช้ TLS ตั้งแต่เริ่ม หรือ 587 ใช้ STARTTLS หากเครือข่ายบล็อก ให้ใช้ 2465 (TLS) หรือ 2587 (STARTTLS) พอร์ต 25 รองรับ STARTTLS ด้วย
ชื่อผู้ใช้banger ใช้ค่าใดก็ได้ คีย์ API เพียงอย่างเดียวระบุพื้นที่ทำงาน
รหัสผ่านคีย์ Banger API ที่มีขอบเขต mail:send
การเข้ารหัสTLS 1.2 หรือใหม่กว่า เปิดให้เข้าสู่ระบบหลังเริ่ม TLS เท่านั้น คีย์จึงไม่ผ่านเครือข่ายเป็นข้อความธรรมดา
การยืนยันตัวตนPLAIN หรือ LOGIN

ก่อนเริ่ม

  1. สร้างคีย์ API ใน แอป Banger เปิด การตั้งค่า → นักพัฒนา → จัดการคีย์ API เลือก สร้างคีย์ API เลือก mail:send และคัดลอกคีย์ ซึ่งแสดงเพียงครั้งเดียว หน้านี้แสดงการตั้งค่า SMTP เหล่านี้ข้างคีย์
  2. ส่งจากช่องทางผลิตภัณฑ์ ที่อยู่ From ต้องอยู่บนชื่อโฮสต์ที่มีช่องทางผลิตภัณฑ์ใช้งาน สำหรับใบเสร็จ การแจ้งเตือน และอีเมลอื่นจากแอป ใน โดเมน เลือก เพิ่มช่องทาง แล้ว ผลิตภัณฑ์ และเพิ่มระเบียน DNS ที่ระบุ ช่องทาง Mail (กล่องจดหมายทีม) หรือแคมเปญไม่ส่งอีเมลแอป อีเมลแอปจึงไม่กระทบชื่อเสียงกล่องจดหมายเข้าของทีม

ตัวอย่าง: Supabase Auth

ในโปรเจกต์ Supabase เปิด Authentication → Emails → SMTP Settings และเปิด SMTP ที่กำหนดเอง:

อีเมลผู้ส่งที่อยู่ในช่องทางผลิตภัณฑ์ เช่น noreply@app.example.com
ชื่อผู้ส่งชื่อผลิตภัณฑ์ของคุณ Banger ส่งตามที่เขียน
โฮสต์submit.bangermail.com
พอร์ต465
ชื่อผู้ใช้banger
รหัสผ่านคีย์ API ของคุณ

บันทึกแล้วส่ง magic link จาก Authentication → Users เพื่อตรวจว่าได้รับ

ตัวอย่าง: Node.js

import nodemailer from "nodemailer";

const transport = nodemailer.createTransport({
  host: "submit.bangermail.com",
  port: 465,
  secure: true,
  auth: { user: "banger", pass: process.env.BANGER_API_KEY },
});

await transport.sendMail({
  from: "Acme <noreply@app.example.com>",
  to: "person@example.com",
  subject: "Your receipt",
  html: "<p>Thanks for your order.</p>",
});

ทดสอบจากเทอร์มินัลด้วย swaks:

swaks --server submit.bangermail.com:465 --tls-on-connect \
  --auth PLAIN --auth-user banger --auth-password "$BANGER_API_KEY" \
  --from noreply@app.example.com --to you@example.com

สิ่งที่เกิดกับแต่ละข้อความ

  • Banger ส่งข้อความตามที่แอปเขียน พร้อมชื่อ From ของคุณ ลงลายเซ็นด้วยคีย์ DKIM ของโดเมนและส่งจากโดเมนอีเมลตีกลับของช่องทางผลิตภัณฑ์
  • นำ Bcc, Return-Path และส่วนหัวของ Banger ออก และเพิ่ม Reply-To ที่ระบุที่อยู่ From หากไม่มี
  • ตรวจผู้รับแต่ละรายที่ RCPT TO ปฏิเสธที่อยู่ระงับเฉพาะรายและส่งให้รายอื่น
  • ข้อความขนาดสูงสุด 10 MiB มีผู้รับสูงสุด 50 ราย
  • ส่วนหัว Idempotency-Key ทำให้การลองซ้ำเป็นการส่งเดิม หากไม่มี ยังตรวจรู้การลองส่งข้อความและผู้รับเดิมได้
  • ทุกข้อความแสดงใน บันทึก โดยมี SMTP เป็นแหล่ง และนับในแผนเหมือนการส่งอื่น

การตอบกลับและข้อผิดพลาด

การปฏิเสธระบุสาเหตุและมีรหัสอ้างอิง (ref …) ที่ตรงกับรายการในบันทึก รหัสเริ่มด้วย 4 เป็นปัญหาชั่วคราว แอปลองใหม่ภายหลังได้

การตอบกลับความหมาย
535 5.7.8รหัสผ่านไม่ใช่คีย์ Banger API ที่ใช้ได้ คีย์ถูกเพิกถอน หรือไม่มี mail:send
421 4.7.0เข้าสู่ระบบล้มเหลวสามครั้งในการเชื่อมต่อเดียว จะปิดการเชื่อมต่อ ตรวจคีย์ก่อนลองใหม่
454 4.7.0เข้าสู่ระบบล้มเหลวจากเครือข่ายมากเกินไปในชั่วโมงที่ผ่านมา ลองอีกครั้งภายหลัง
550 5.7.1ชื่อโฮสต์ From ไม่มีช่องทางผลิตภัณฑ์พร้อมส่ง (การตอบกลับระบุสิ่งที่ขาด) ผู้รับถูกระงับ หรือหยุดส่งเพราะชื่อเสียง
553 5.1.3ที่อยู่ผู้รับไม่ถูกต้อง
552 5.3.4ข้อความใหญ่กว่า 10 MiB
554 5.6.0รูปแบบข้อความผิด เช่น ส่วนหัว From หรือ Subject ซ้ำ หรือ From มีมากกว่าหนึ่งที่อยู่
451 4.7.0ใช้โควตาส่งหรือขีดจำกัดรายวันของพื้นที่ทำงานหมดแล้ว ต่อใหม่เมื่อถึงรอบเรียกเก็บเงินหรือวันถัดไป หรือทันทีเมื่ออัปเกรดแผน
451 4.3.0Banger รับข้อความตอนนี้ไม่ได้ ลองใหม่

ความปลอดภัย

  • Banger เก็บเฉพาะแฮชแต่ละคีย์ เพิกถอนหรือหมุนเวียนคีย์ใน จัดการคีย์ API ไคลเอนต์ SMTP ที่ใช้จะถูกปฏิเสธในการเข้าสู่ระบบครั้งถัดไป
  • ให้ SMTP มีคีย์แยกที่มีเพียง mail:send เพื่อให้รหัสผ่านรั่วไม่สามารถอ่านพื้นที่ทำงาน
  • จำกัดการเข้าสู่ระบบล้มเหลวต่อเครือข่ายไคลเอนต์และต่อคีย์ และบันทึกการเข้าสู่ระบบที่ปฏิเสธด้วยคีย์ของคุณในบันทึก

ต้องการ HTTP? ส่งแบบเดียวกันได้ผ่าน Banger API