需要一次性生成几十上百个临时邮箱地址?手动一个个点太慢。本文教你用 YYDS Mail API 批量创建邮箱、批量接收邮件、脚本自动化注册流程。
批量生成临时邮箱的场景
- 批量注册测试:测试注册流程需要大量邮箱
- 数据采集:某些平台需要邮箱注册才能查看内容
- 负载测试:模拟多用户并发注册
- 自动化工作流:CI/CD 流水线中批量创建测试账号
无论哪种场景,API 批量生成都比手动操作高效得多。
用 API 批量创建邮箱
JavaScript 示例
const API_BASE = "https://maliapi.215.im/v1";
const API_KEY = process.env.YYDS_API_KEY;
async function createBatchEmails(count) {
const accounts = [];
for (let i = 0; i < count; i++) {
const res = await fetch(`${API_BASE}/accounts`, {
method: "POST",
headers: {
"X-API-Key": API_KEY,
"Content-Type": "application/json",
},
});
const { data } = await res.json();
accounts.push(data);
// 避免触发速率限制,每次间隔 200ms
await new Promise((r) => setTimeout(r, 200));
}
return accounts;
}
// 批量创建 50 个邮箱
const emails = await createBatchEmails(50);
console.log(`创建了 ${emails.length} 个邮箱`);
emails.forEach((acc) => console.log(acc.address));
Python 示例
import requests
import time
API_BASE = "https://maliapi.215.im/v1"
API_KEY = "AC-your-key-here"
def create_batch_emails(count):
accounts = []
for i in range(count):
res = requests.post(
f"{API_BASE}/accounts",
headers={"X-API-Key": API_KEY}
)
data = res.json()["data"]
accounts.append(data)
time.sleep(0.2) # 避免速率限制
return accounts
# 批量创建 50 个
emails = create_batch_emails(50)
for acc in emails:
print(acc["address"])
批量接收邮件
创建邮箱后,批量查询收件箱:
async function checkAllInboxes(accounts) {
const results = [];
for (const account of accounts) {
const res = await fetch(
`${API_BASE}/accounts/${account.id}/messages`,
{ headers: { "X-API-Key": API_KEY } }
);
const { data } = await res.json();
results.push({ address: account.address, messages: data });
await new Promise((r) => setTimeout(r, 100));
}
return results;
}
用 Webhook 替代轮询
批量场景下轮询效率极低。配置 Webhook 后,每个邮箱收到邮件时主动通知:
async function setupWebhooks(accounts, webhookUrl) {
for (const account of accounts) {
await fetch(`${API_BASE}/webhooks`, {
method: "POST",
headers: {
"X-API-Key": API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
url: webhookUrl,
events: ["message.received"],
accountId: account.id,
}),
});
}
}
详见Webhook 配置指南。
自动化注册流程示例
async function batchRegister(accounts, registerFn) {
const results = [];
for (const account of accounts) {
// 1. 用临时邮箱注册
const regResult = await registerFn(account.address);
// 2. 等待验证邮件(用 Webhook 或轮询)
const message = await waitForMessage(account.id);
// 3. 提取验证码
const code = message.text.match(/\d{6}/)?.[0];
// 4. 完成验证
await verifyCode(regResult.sessionId, code);
results.push({ email: account.address, status: "success" });
}
return results;
}
注意事项
- 速率限制:API 有调用频率限制,批量操作加间隔(200ms+)
- 配额消耗:每个创建/查询都算配额,付费套餐配额更高
- 并发控制:不要同时发太多请求,避免 429
- 错误处理:实现重试机制,处理网络错误
- 清理资源:测试完删除邮箱,释放配额
常见问题
一次能创建多少个邮箱? 取决于配额。免费套餐有每日上限,付费更高。建议分批创建,每批 50-100 个。
批量创建会触发封号吗? 正常 API 使用不会。但如果用于滥用(如大规模垃圾注册),可能违反服务条款。
批量创建的邮箱能保留多久? 免费地址会话期间可用,付费可长期保留。详见定价页。
想批量生成临时邮箱?查看完整 API 文档,或阅读临时邮箱 API 入门。
