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。

開始前に

  1. APIキーを作成します。 Bangerアプリで設定 → 開発者 → APIキーの管理を開き、APIキーを作成を選び、mail:sendを選択してキーをコピーします。一度しか表示されません。ページにはキーの隣にこのSMTP設定が表示されます。
  2. プロダクトレーンから送信します。 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.01接続でログインが3回失敗すると切断します。再試行前にキーを確認してください。
454 4.7.0過去1時間にネットワークからのログイン失敗が多すぎます。後で再試行してください。
550 5.7.1Fromホスト名に送信可能なプロダクトレーンがない(不足内容は応答に記載)、受信者が抑止対象、または評価による送信停止です。
553 5.1.3受信者アドレスが不正です。
552 5.3.4メッセージが10 MiBを超えています。
554 5.6.0メッセージ形式が不正です。例: From・Subjectヘッダーの重複、Fromに複数アドレス。
451 4.7.0ワークスペースの送信枠または日次上限を使い切りました。次の請求期間・翌日、またはプランのアップグレードですぐに更新します。
451 4.3.0Bangerは今メッセージを受け付けられません。再試行してください。

セキュリティ

  • Bangerは各キーのハッシュのみ保存します。APIキーの管理でキーを失効・ローテーションすると、そのキーのSMTPクライアントは次回ログイン時に拒否されます。
  • SMTP専用のmail:sendのみを持つキーを用意すれば、パスワードが漏れてもワークスペースを読み取れません。
  • ログイン失敗はクライアントネットワークとキーごとに制限します。お客様のキーでの拒否ログインはログに記録します。

HTTPをご希望ですか。同じ送信機能をBanger APIで利用できます。