E-mail versturen via SMTP

Laat elke SMTP-app via Banger versturen, van Supabase Auth en WordPress tot de mailer van je framework. Een Banger API-sleutel is het wachtwoord; elk bericht wordt vanaf je eigen domein bezorgd en verschijnt in Logs.

Instellingen

Hostsubmit.bangermail.com
Poort465 met TLS vanaf het begin, of 587 met STARTTLS. Blokkeert je netwerk die, gebruik dan 2465 (TLS) of 2587 (STARTTLS); poort 25 ondersteunt ook STARTTLS.
Gebruikersnaambanger. Elke waarde werkt: alleen de API-sleutel bepaalt je werkruimte.
WachtwoordEen Banger API-sleutel met de scope mail:send.
VersleutelingTLS 1.2 of nieuwer. Inloggen wordt pas aangeboden nadat TLS is gestart, zodat een sleutel nooit als platte tekst over het netwerk gaat.
AuthenticatiePLAIN of LOGIN.

Voordat je begint

  1. Maak een API-sleutel. Open Instellingen → Ontwikkelaars → API-sleutels beheren in de Banger-app, kies API-sleutel maken, selecteer mail:send en kopieer de sleutel: deze wordt één keer getoond. De pagina toont deze SMTP-instellingen naast je sleutels.
  2. Verstuur via een Product-kanaal. Het From-adres moet op een hostnaam met een actief Product-kanaal staan: het kanaal voor bonnen, meldingen en andere e-mail uit je app. Kies Kanaal toevoegen en daarna Product in Domeinen, en voeg de vermelde DNS-records toe. Een Mail-kanaal (de mailboxen van je team) of Campagne-kanaal vervoert geen app-e-mail, zodat die de inboxreputatie van je team niet kan beïnvloeden.

Voorbeeld: Supabase Auth

Open Authentication → Emails → SMTP Settings in je Supabase-project en schakel aangepaste SMTP in:

Afzender-e-mailEen adres op je Product-kanaal, zoals noreply@app.example.com
AfzendernaamDe naam van je product. Banger bezorgt die zoals geschreven.
Hostsubmit.bangermail.com
Poort465
Gebruikersnaambanger
WachtwoordJe API-sleutel

Sla op en stuur een magic link vanuit Authentication → Users om te controleren of die aankomt.

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

Om vanuit een terminal met swaks te testen:

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

Wat er met elk bericht gebeurt

  • Banger bezorgt het bericht zoals je app het schreef, met je From-naam, ondertekend met de DKIM-sleutel van je domein en verstuurd vanaf het bounce-domein van je Product-kanaal.
  • Verwijdert Bcc, Return-Path en de eigen Banger-headers, en voegt bij ontbreken een Reply-To toe die het From-adres vermeldt.
  • Elke ontvanger wordt gecontroleerd bij RCPT TO: een geblokkeerd adres wordt afzonderlijk geweigerd en de overige krijgen het bericht.
  • Een bericht mag maximaal 10 MiB en maximaal 50 ontvangers hebben.
  • Een Idempotency-Key-header maakt een herhaalpoging tot dezelfde verzending. Zonder die wordt een herhaling met hetzelfde bericht en dezelfde ontvangers nog steeds herkend.
  • Elk bericht verschijnt in Logs met SMTP als bron en telt mee voor je abonnement zoals elke andere verzending.

Responses en fouten

Een weigering vermeldt de oorzaak en bevat een referentie, (ref …), die overeenkomt met de vermelding in Logs. Codes die met 4 beginnen zijn tijdelijk: je app kan later opnieuw proberen.

ResponseBetekenis
535 5.7.8Het wachtwoord is geen geldige Banger API-sleutel, de sleutel is ingetrokken of mist mail:send.
421 4.7.0Drie mislukte logins op één verbinding: die wordt gesloten. Controleer de sleutel voordat je opnieuw probeert.
454 4.7.0Te veel mislukte logins vanaf je netwerk in het afgelopen uur. Probeer later opnieuw.
550 5.7.1De From-hostnaam heeft geen verzendklaar Product-kanaal (de response vermeldt wat ontbreekt), een ontvanger is geblokkeerd of het versturen is gepauzeerd wegens reputatie.
553 5.1.3Een ontvangeradres is ongeldig.
552 5.3.4Het bericht is groter dan 10 MiB.
554 5.6.0Het bericht is onjuist gevormd, bijvoorbeeld een herhaalde From- of Subject-header of een From met meer dan één adres.
451 4.7.0Het verzendquotum of de daglimiet van de werkruimte is opgebruikt. Die wordt vernieuwd bij de volgende factureringsperiode of dag, of meteen bij een abonnementsupgrade.
451 4.3.0Banger kon het bericht nu niet aannemen. Probeer opnieuw.

Beveiliging

  • Banger bewaart alleen een hash van elke sleutel. Trek een sleutel in of roteer die in API-sleutels beheren; SMTP-clients die deze gebruiken worden bij hun volgende login geweigerd.
  • Geef SMTP een eigen sleutel met alleen mail:send, zodat een gelekt wachtwoord je werkruimte niet kan lezen.
  • Mislukte logins worden beperkt per clientnetwerk en per sleutel; een geweigerde login met één van je sleutels wordt vastgelegd in Logs.

Liever HTTP? Hetzelfde versturen is beschikbaar via de Banger API.