Dokumentacja dla programistów
Wysyłaj emaile przez SMTP
Skieruj dowolną aplikację obsługującą SMTP do Banger, od Supabase Auth przez WordPress po mailer frameworka. Hasłem jest klucz API Banger, a każda wiadomość jest dostarczana z Twojej domeny i pojawia się w Logach.
Ustawienia
| Host | submit.bangermail.com |
|---|---|
| Port | 465 z TLS od początku lub 587 z STARTTLS. Jeśli sieć je blokuje, użyj 2465 (TLS) lub 2587 (STARTTLS); port 25 także przyjmuje STARTTLS. |
| Nazwa użytkownika | banger. Dowolna wartość działa: sam klucz API identyfikuje Twoją przestrzeń roboczą. |
| Hasło | Klucz API Banger z zakresem mail:send. |
| Szyfrowanie | TLS 1.2 lub nowszy. Logowanie jest dostępne dopiero po uruchomieniu TLS, więc klucz nigdy nie przechodzi przez sieć jawnym tekstem. |
| Uwierzytelnianie | PLAIN lub LOGIN. |
Zanim zaczniesz
- Utwórz klucz API. W aplikacja Banger otwórz Ustawienia → Programiści → Zarządzaj kluczami API, wybierz Utwórz klucz API, zaznacz
mail:sendi skopiuj klucz: jest pokazywany raz. Strona pokazuje te ustawienia SMTP obok kluczy. - Wysyłaj z kanału Produkt. Adres From musi być w nazwie hosta z aktywnym kanałem Produkt, przeznaczonym dla potwierdzeń, alertów i innych emaili aplikacji. W Domeny wybierz Dodaj kanał, potem Produkt i dodaj wymienione rekordy DNS. Kanał Mail (skrzynki zespołu) lub Kampania nie przenosi emaili aplikacji, więc poczta aplikacji nie może wpłynąć na reputację skrzynki odbiorczej zespołu.
Przykład: Supabase Auth
W projekcie Supabase otwórz Authentication → Emails → SMTP Settings i włącz własny SMTP:
| Email nadawcy | Adres w Twoim kanale Produkt, np. noreply@app.example.com |
|---|---|
| Nazwa nadawcy | Nazwa Twojego produktu. Banger dostarcza ją w napisanej postaci. |
| Host | submit.bangermail.com |
| Port | 465 |
| Nazwa użytkownika | banger |
| Hasło | Twój klucz API |
Zapisz, a następnie wyślij magic link z Authentication → Users, aby sprawdzić, czy dotrze.
Przykład: 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>",
}); Aby przetestować z terminala za pomocą 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 Co dzieje się z każdą wiadomością
- Banger dostarcza wiadomość tak, jak napisała ją aplikacja, z Twoją nazwą From, podpisaną kluczem DKIM domeny i wysłaną z domeny odbić kanału Produkt.
- Usuwa
Bcc,Return-Pathi własne nagłówki Banger oraz dodajeReply-Towskazujący adres From, gdy go brakuje. - Każdy odbiorca jest sprawdzany przy
RCPT TO: zablokowany adres jest odrzucany osobno, a do pozostałych wysyłana jest wiadomość. - Wiadomość może mieć do 10 MiB i do 50 odbiorców.
- Nagłówek
Idempotency-Keysprawia, że ponowienie jest tą samą wysyłką. Bez niego ponowienie tej samej wiadomości i odbiorców także jest rozpoznawane. - Każda wiadomość pojawia się w Logi ze źródłem SMTP i wlicza się do planu jak każda inna wysyłka.
Odpowiedzi i błędy
Odmowa wskazuje przyczynę i zawiera referencję (ref …), która odpowiada wpisowi w Logach. Kody zaczynające się od 4 są tymczasowe: aplikacja może spróbować ponownie później.
| Odpowiedź | Znaczenie |
|---|---|
535 5.7.8 | Hasło nie jest poprawnym kluczem API Banger, klucz jest cofnięty lub nie ma mail:send. |
421 4.7.0 | Trzy nieudane logowania w jednym połączeniu: zostaje zamknięte. Sprawdź klucz przed ponowieniem. |
454 4.7.0 | Zbyt wiele nieudanych logowań z Twojej sieci w ostatniej godzinie. Spróbuj później. |
550 5.7.1 | Nazwa hosta From nie ma kanału Produkt gotowego do wysyłania (odpowiedź wskazuje brak), odbiorca jest zablokowany lub wysyłanie wstrzymano ze względu na reputację. |
553 5.1.3 | Adres odbiorcy jest nieprawidłowy. |
552 5.3.4 | Wiadomość jest większa niż 10 MiB. |
554 5.6.0 | Wiadomość jest niepoprawna, np. powtórzony nagłówek From lub Subject albo From z więcej niż jednym adresem. |
451 4.7.0 | Limit wysyłania lub dzienny limit przestrzeni jest wyczerpany. Odnawia się w następnym okresie rozliczeniowym lub dniu albo teraz po podniesieniu planu. |
451 4.3.0 | Banger nie mógł teraz przyjąć wiadomości. Ponów. |
Bezpieczeństwo
- Banger przechowuje tylko hash każdego klucza. Cofnij lub zmień klucz w Zarządzaj kluczami API; używający go klienci SMTP zostaną odrzuceni przy następnym logowaniu.
- Daj SMTP osobny klucz tylko z
mail:send, aby ujawnione hasło nie mogło odczytać przestrzeni roboczej. - Nieudane logowania są ograniczane na sieć klienta i klucz, a odrzucone logowanie jednym z Twoich kluczy jest zapisywane w Logach.
Wolisz HTTP? Ta sama wysyłka jest dostępna przez API Banger.