開発者ドキュメント
SMTPでメールを送信
Supabase Auth、WordPress、フレームワークのメーラーなど、SMTP対応アプリをBangerへ接続します。Banger APIキーがパスワードになり、全メッセージは独自ドメインから配信され、ログに表示されます。
設定
| ホスト | submit.bangermail.com |
|---|---|
| ポート | 465は最初からTLS、587はSTARTTLSです。ネットワークが遮断する場合は2465(TLS)または2587(STARTTLS)を使います。ポート25もSTARTTLS対応です。 |
| ユーザー名 | banger。任意の値が使えます。APIキーだけでワークスペースを識別します。 |
| パスワード | mail:sendスコープ付きBanger APIキー。 |
| 暗号化 | TLS 1.2以降。ログインはTLS開始後のみ可能で、キーが平文でネットワークを通ることはありません。 |
| 認証 | PLAINまたはLOGIN。 |
開始前に
- APIキーを作成します。 Bangerアプリで設定 → 開発者 → APIキーの管理を開き、APIキーを作成を選び、
mail:sendを選択してキーをコピーします。一度しか表示されません。ページにはキーの隣にこのSMTP設定が表示されます。 - プロダクトレーンから送信します。 Fromアドレスは、領収書、通知などアプリメール用の有効なプロダクトレーンを持つホスト名に必要です。ドメインでレーンを追加、次にプロダクトを選び、表示されたDNSレコードを追加します。メールレーン(チームのメールボックス)や一斉配信レーンはアプリメールを扱わないため、アプリのメールがチームの受信トレイ評価に影響することはありません。
例: Supabase Auth
Supabaseプロジェクトで認証 → メール → SMTP設定を開き、カスタムSMTPを有効にします。
| 送信者メール | noreply@app.example.comなど、プロダクトレーン上のアドレス |
|---|---|
| 送信者名 | プロダクト名。Bangerは書かれた通りに配信します。 |
| ホスト | submit.bangermail.com |
| ポート | 465 |
| ユーザー名 | banger |
| パスワード | APIキー |
保存後、認証 → ユーザーからマジックリンクを送り、届くことを確認します。
例: 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独自ヘッダーを削除し、なければFromアドレスを示すReply-Toを追加します。- 各受信者を
RCPT TOで確認します。抑止アドレスのみ拒否し、他には送信します。 - メッセージは最大10 MiB、受信者は最大50件です。
Idempotency-Keyヘッダーは再試行を同一送信にします。なくても同じメッセージと受信者の再試行は認識します。- 全メッセージはソースをSMTPとしてログに表示され、他の送信と同様にプラン使用量へ算入します。
応答とエラー
拒否は原因と、ログの項目に一致する参照(ref …)を含みます。4で始まるコードは一時的で、アプリは後で再試行できます。
| 応答 | 意味 |
|---|---|
535 5.7.8 | パスワードが有効なBanger APIキーではない、キーが失効済み、またはmail:sendがありません。 |
421 4.7.0 | 1接続でログインが3回失敗すると切断します。再試行前にキーを確認してください。 |
454 4.7.0 | 過去1時間にネットワークからのログイン失敗が多すぎます。後で再試行してください。 |
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で利用できます。