E-Mails über SMTP senden

Richte jede SMTP-fähige App auf Banger aus, von Supabase Auth über WordPress bis zum Mailer deines Frameworks. Ein Banger-API-Schlüssel ist das Passwort, und jede Nachricht wird von deiner Domain zugestellt und erscheint in Protokolle.

Einstellungen

Hostsubmit.bangermail.com
Port465 mit TLS von Anfang an oder 587 mit STARTTLS. Wenn dein Netzwerk diese blockiert, nutze 2465 (TLS) oder 2587 (STARTTLS); Port 25 akzeptiert ebenfalls STARTTLS.
Benutzernamebanger. Jeder Wert funktioniert: Allein der API-Schlüssel identifiziert deinen Workspace.
PasswortEin Banger-API-Schlüssel mit der Berechtigung mail:send.
VerschlüsselungTLS 1.2 oder neuer. Anmeldung wird erst nach TLS-Start angeboten, sodass ein Schlüssel niemals im Klartext über das Netzwerk geht.
AuthentifizierungPLAIN oder LOGIN.

Bevor du beginnst

  1. Erstelle einen API-Schlüssel. Öffne in der Banger-App den Bereich Einstellungen → Entwickler → API-Schlüssel verwalten, wähle API-Schlüssel erstellen, dann mail:send und kopiere den Schlüssel: Er wird nur einmal angezeigt. Die Seite zeigt diese SMTP-Einstellungen neben deinen Schlüsseln.
  2. Sende über einen Produktkanal. Die From-Adresse muss auf einem Hostnamen mit aktivem Produktkanal liegen, dem Kanal für Belege, Warnungen und andere E-Mails deiner App. Wähle in Domains zuerst Kanal hinzufügen, dann Produkt und ergänze die aufgeführten DNS-Einträge. Ein Mail-Kanal (Team-Postfächer) oder Kampagnenkanal transportiert keine App-E-Mails, sodass deine App die Posteingangsreputation deines Teams nicht beeinflussen kann.

Beispiel: Supabase Auth

Öffne in deinem Supabase-Projekt Authentication → Emails → SMTP Settings und aktiviere eigenes SMTP:

Absender-E-MailEine Adresse auf deinem Produktkanal, etwa noreply@app.example.com
AbsendernameDer Name deines Produkts. Banger stellt ihn wie geschrieben zu.
Hostsubmit.bangermail.com
Port465
Benutzernamebanger
PasswortDein API-Schlüssel

Speichere und sende dann einen Magic Link aus Authentication → Users, um die Ankunft zu prüfen.

Beispiel: 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>",
});

Zum Testen im Terminal mit 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

Was mit jeder Nachricht geschieht

  • Banger stellt die Nachricht wie von deiner App verfasst zu, mit deinem From-Namen, signiert mit dem DKIM-Schlüssel deiner Domain und gesendet von der Bounce-Domain deines Produktkanals.
  • Entfernt Bcc, Return-Path und Bangers eigene Header und fügt ein Reply-To mit der From-Adresse hinzu, wenn keines vorhanden ist.
  • Jeder Empfänger wird bei RCPT TO geprüft: Eine gesperrte Adresse wird einzeln abgelehnt, die anderen werden angeschrieben.
  • Eine Nachricht darf bis zu 10 MiB und bis zu 50 Empfänger haben.
  • Ein Idempotency-Key-Header macht eine Wiederholung zur selben Sendung. Ohne ihn wird eine Wiederholung derselben Nachricht und Empfänger ebenfalls erkannt.
  • Jede Nachricht erscheint in Protokolle mit SMTP als Quelle und zählt wie jeder andere Versand zu deinem Tarif.

Antworten und Fehler

Eine Ablehnung nennt die Ursache und enthält eine Referenz, (ref …), die zum Eintrag in Protokolle passt. Mit 4 beginnende Codes sind vorübergehend: Deine App kann es später erneut versuchen.

AntwortBedeutung
535 5.7.8Das Passwort ist kein gültiger Banger-API-Schlüssel, der Schlüssel wurde widerrufen oder ihm fehlt mail:send.
421 4.7.0Drei fehlgeschlagene Anmeldungen in einer Verbindung: Sie wird geschlossen. Prüfe den Schlüssel vor einem erneuten Versuch.
454 4.7.0Zu viele fehlgeschlagene Anmeldungen aus deinem Netzwerk in der letzten Stunde. Versuche es später erneut.
550 5.7.1Der From-Hostname hat keinen versandbereiten Produktkanal (die Antwort nennt Fehlendes), ein Empfänger ist gesperrt oder der Versand ist wegen Reputation pausiert.
553 5.1.3Eine Empfängeradresse ist ungültig.
552 5.3.4Die Nachricht ist größer als 10 MiB.
554 5.6.0Die Nachricht ist fehlerhaft, etwa mit wiederholtem From- oder Subject-Header oder einem From mit mehreren Adressen.
451 4.7.0Das Versandkontingent oder Tageslimit des Workspace ist aufgebraucht. Es erneuert sich im nächsten Abrechnungszeitraum oder am nächsten Tag oder jetzt durch ein Tarifupgrade.
451 4.3.0Banger konnte die Nachricht gerade nicht annehmen. Versuche es erneut.

Sicherheit

  • Banger speichert nur einen Hash jedes Schlüssels. Widerrufe oder rotiere einen Schlüssel in API-Schlüssel verwalten; SMTP-Clients damit werden bei der nächsten Anmeldung abgelehnt.
  • Gib SMTP einen eigenen Schlüssel mit nur mail:send, damit ein geleaktes Passwort deinen Workspace nicht lesen kann.
  • Fehlgeschlagene Anmeldungen werden pro Clientnetzwerk und Schlüssel begrenzt; eine abgelehnte Anmeldung mit einem deiner Schlüssel wird in Protokolle erfasst.

Bevorzugst du HTTP? Derselbe Versand ist über die Banger-API verfügbar.