MailBrew REST APIリファレンス
MailBrewには2つの使い方があります。
アプリのSMTP送信先をMailBrew(smtp.mailbrew.dev)に設定するだけ。送信したメールをダッシュボードの共有インボックスでリアルタイム確認できます。
SMTP設定へ →APIでテスト用メールアドレスを発行し、実際にメールを受信。OTP抽出、リンク検証、メールアサーションなどをAPIで自動化できます。CI/CDパイプラインに組み込み可能。
Cloud API →アプリケーションの環境変数を以下のように設定してください。
ダッシュボードの「SMTP設定」で生成したSMTP認証情報を使用すると、宛先アドレスに関係なく送信メールが企業の共有インボックスに自動的に振り分けられます。テスト時に宛先を意識する必要がなくなります。
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailbrew.dev
MAIL_PORT=1025
MAIL_USERNAME=mb_smtp_xxxxx
MAIL_PASSWORD=your_smtp_password
MAIL_ENCRYPTION=nullNode.js (Nodemailer) の場合:
const transporter = nodemailer.createTransport({
host: 'smtp.mailbrew.dev',
port: 1025,
secure: false,
auth: {
user: 'mb_smtp_xxxxx',
pass: 'your_smtp_password',
},
});MailBrewに送信されたメールはWeb UIでリアルタイムに確認できます。HTMLメールのプレビュー、添付ファイルのダウンロード、全文検索が可能です。
https://mailbrew.dev以下はMailBrewクラウドサービスのAPIエンドポイントです。APIキーによる認証が必要です。
公式SDKを使うとAPIを簡単に呼び出せます。
npm install @brewmail/sdkconst { BrewMail } = require('@brewmail/sdk');
const client = new BrewMail('mb_your_key_here');createAddress(options?)一時メールアドレスを作成
const addr = await client.createAddress({ ttl: 3600 });
console.log(addr.address); // "[email protected]"listAddresses()アドレス一覧を取得
const addresses = await client.listAddresses();waitForEmail(address, options?)メール受信を待機(ロングポーリング)
const email = await client.waitForEmail(addr.address, { timeout: 30 });listEmails(address)メール一覧を取得
const emails = await client.listEmails(addr.address);getEmail(address, emailId)メール詳細を取得
const detail = await client.getEmail(addr.address, email.id);extractOtp(address, emailId, options?)メール本文からOTP/認証コードを抽出
const code = await client.extractOtp(addr.address, email.id);
// Custom pattern: { pattern: '\\d{4}' }extractLinks(address, emailId, options?)メール本文からリンクを抽出
const links = await client.extractLinks(addr.address, email.id);
// Filter: { pattern: 'verify' }assertEmail(address, emailId, assertions)メール内容のアサーション(件名・送信元・本文など)
const result = await client.assertEmail(addr.address, email.id, {
subject_contains: 'Welcome',
body_contains: 'verify',
});
console.log(result.passed); // truecaptureOtp(options?)アドレス作成〜OTP抽出を一括で行う
const { address, waitAndExtract } = await client.captureOtp({ ttl: 120 });
// ... trigger email ...
const { code, email } = await waitAndExtract();forwardEmail(address, emailId, to)メールを別アドレスに転送
await client.forwardEmail(addr.address, email.id, '[email protected]');createWebhook(url, options?)グローバルWebhookを作成
const wh = await client.createWebhook('https://example.com/hook', {
events: ['email.received'],
});listWebhooks()Webhook一覧を取得
const webhooks = await client.listWebhooks();deleteWebhook(id)Webhookを削除
await client.deleteWebhook(wh.id);すべてのAPIリクエストにはAPIキーが必要です。X-API-Key ヘッダーに含めてください。
X-API-Key: mb_your_key_hereAPIキーにスコープが設定されている場合、該当する権限がないリクエストは403エラーになります。スコープ未設定のキーは全権限を持ちます。
addresses:read— アドレスの一覧・詳細取得addresses:write— アドレスの作成addresses:delete— アドレスの削除emails:read— メールの一覧・詳細・OTP/リンク取得発行されるアドレスは企業のサブドメインを使用します。カスタムドメインが設定されている場合はそちらが使用されます。
{random}@{company-slug}.mailbrew.devhttps://mailbrew.dev/api/mailbrew/api/mailbrew/addressesアドレス発行 — 一時メールアドレスを生成します。ttl=0で常設(無期限)アドレスを作成できます。
ttlintegerwebhook_urlstringlocal_partstring{
"data": {
"id": 1,
"address": "[email protected]",
"webhook_url": null,
"expires_at": "2026-03-29T13:00:00+00:00",
"is_permanent": false,
"created_at": "2026-03-29T12:00:00+00:00"
}
}/api/mailbrew/addressesアドレス一覧 — 自分のAPIキーで発行したアドレスの一覧を取得します。
{
"data": [
{
"id": 1,
"address": "[email protected]",
"webhook_url": null,
"expires_at": "2026-03-29T13:00:00+00:00",
"is_permanent": false,
"created_at": "2026-03-29T12:00:00+00:00"
}
]
}/api/mailbrew/addresses/{address}アドレス詳細 — アドレスの詳細を取得します。
{
"data": {
"id": 1,
"address": "[email protected]",
"webhook_url": null,
"expires_at": "2026-03-29T13:00:00+00:00",
"is_permanent": false,
"created_at": "2026-03-29T12:00:00+00:00"
}
}/api/mailbrew/addresses/{address}/emailsメール一覧 — 指定アドレスに届いたメールの一覧を取得します。
{
"data": [
{
"id": 1,
"from_address": "[email protected]",
"subject": "Your verification code",
"text_body": "Your code is: 847291",
"received_at": "2026-03-29T12:05:00+00:00"
}
]
}/api/mailbrew/addresses/{address}/emails/{id}メール詳細 — 特定のメールの詳細を取得します。
{
"data": {
"id": 1,
"from_address": "[email protected]",
"subject": "Your verification code",
"text_body": "Your code is: 847291",
"html_body": "<p>Your code is: <b>847291</b></p>",
"received_at": "2026-03-29T12:05:00+00:00"
}
}/api/mailbrew/addresses/{address}/emails/{id}/otpOTP抽出 — メール本文から認証コード(OTP)を自動抽出します。E2Eテストに最適。
patternstring{
"data": {
"code": "847291",
"email_id": 1,
"source": "text_body"
}
}/api/mailbrew/addresses/{address}/emails/{id}/linksリンク抽出 — メール本文からリンク(URL)を自動抽出します。招待リンクやパスワードリセットリンクの取得に最適。
patternstring{
"data": {
"links": [
"https://example.com/verify?token=abc123",
"https://example.com/unsubscribe"
],
"email_id": 1,
"source": "text_body"
}
}/api/mailbrew/addresses/{address}/emails/{id}/assertメールアサーション — メールの内容を検証します。件名、送信元、宛先、本文の部分一致など、複数条件を同時にチェック。
subjectstringsubject_containsstringfromstringtostringbody_containsstring{
"data": {
"passed": true,
"email_id": 1,
"results": [
{ "field": "subject", "passed": true, "expected": "Welcome", "actual": "Welcome" },
{ "field": "body_contains", "passed": true, "expected": "verify" }
]
}
}/api/mailbrew/addresses/{address}/emails/{id}/forwardメール転送 — 受信メールを別のメールアドレスに転送します。
tostring{ "success": true }/api/mailbrew/addresses/{address}アドレス削除 — アドレスを削除します。
204 No Content/api/mailbrew/webhooksWebhook一覧 — グローバルWebhookの一覧を取得します。
{
"data": [
{
"id": 1,
"url": "https://example.com/hook",
"events": ["email.received"],
"is_active": true
}
]
}/api/mailbrew/webhooksWebhook登録 — グローバルWebhookを登録します。全アドレスのメール受信を通知。
urlstringeventsarray{
"data": {
"id": 1,
"url": "https://example.com/hook",
"secret": "abc123...",
"events": ["email.received"],
"is_active": true
}
}const { BrewMail } = require('@brewmail/sdk');
const client = new BrewMail('mb_your_key_here');
// E2E test: create address, wait for email, extract OTP
const { address, waitAndExtract } = await client.captureOtp({ ttl: 120 });
// ... trigger email send to `address` ...
const { code, email } = await waitAndExtract();
console.log(code); // "847291"