إرسال البريد عبر 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 الخاص بك

احفظ، ثم أرسل رابط دخول من 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.0لم يستطع Banger قبول الرسالة الآن. أعد المحاولة.

الأمان

  • يخزن Banger بصمة كل مفتاح فقط. اسحب مفتاحًا أو دوّره في إدارة مفاتيح API؛ تُرفض عملاء SMTP التي تستخدمه عند دخولها التالي.
  • خصص لـSMTP مفتاحًا مستقلًا مع mail:send فقط، كي لا تستطيع كلمة مرور مسرّبة قراءة مساحتك.
  • تُحدّ محاولات الدخول الفاشلة لكل شبكة عميل ولكل مفتاح، ويُسجّل الدخول المرفوض بأحد مفاتيحك في السجلات.

تفضّل HTTP؟ يتوفر الإرسال نفسه عبر Banger API.