Postmark 的核心卖点只有一个:送达率。他们主动审查发件方,拒绝营销邮件,并为事务性流量使用独立 IP。Postmark 发出的邮件比任何通用服务商都更可靠地落入收件箱——代价是略高的单封邮件费用。
前往 postmarkapp.com ↗ 注册。免费套餐:每月 100 封邮件,永久有效。试用版:每月 100 封,之后 $15/月可发 10K 封。
创建一个 Server——Postmark 对项目的称呼。每个 Server 有独立的 API 令牌。常见做法:每个环境(生产、预发布)各一个 Server。
在验证所有权之前,Postmark 不允许你从 @yourdomain.com 发送邮件。进入 Server → Sender Signatures → Add Domain。
在你的 DNS 服务商添加三条记录:
Postmark 会自动验证,通常 30 分钟内变绿。
可选:同时添加 DMARC。Postmark 提供了一个很好用的免费 DMARC 分析工具 ↗,每周会通过邮件发送报告。
进入 Server → API Tokens,复制 Server API token:
POSTMARK_SERVER_TOKEN=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
注意区分 Account API token(用于管理 Server,不用于发送邮件)。你的应用使用的是 Server token。
npm install postmark
其他语言:Python、Ruby、PHP、Java、Go、.NET ↗。也可以直接使用纯 HTTP——API 接口面积很小,都是 JSON。
import { ServerClient } from "postmark";
const client = new ServerClient(process.env.POSTMARK_SERVER_TOKEN);
await client.sendEmail({
From: "[email protected]",
To: "[email protected]",
Subject: "Hello from Postmark",
TextBody: "Plain text version",
HtmlBody: "<p>HTML body</p>",
MessageStream: "outbound", // "outbound" = 事务性;默认值
});
检查收件人收件箱。如果收到了,就大功告成。如果没收到,Postmark 控制台 → Activity 会显示每次发送尝试的状态及收件服务器的响应。
对于需要反复发送的邮件(欢迎邮件、密码重置、收据),使用 Postmark Templates——无需重新部署应用,直接在控制台编辑。
进入 Server → Templates → Create template。Postmark 使用 Mustache ↗ 语法来插入变量:
<p>Hi {{name}},</p>
<p>Click here to verify: {{verifyUrl}}</p>
通过 ID 或别名发送:
await client.sendEmailWithTemplate({
From: "[email protected]",
To: user.email,
TemplateAlias: "welcome", // 或 TemplateId: 12345
TemplateModel: {
name: user.name,
verifyUrl: `https://yourapp.com/verify/${token}`,
},
});
如果想要更好的模板开发体验,开源的 MJML ↗ 语言可以编译为邮件安全的 HTML,并与 Postmark 模板完全兼容。Postmark 还提供了免费的预设计模板 ↗供直接导入使用。
Postmark 将事务性邮件(一对一,响应用户操作)与广播邮件(一对多,如简报)区分开来。两者使用不同的 IP 池,确保一次糟糕的广播不会污染你的事务性声誉。
如果只发事务性邮件,无需配置此项。如果同时需要广播,创建第二个消息流,并在对应发送调用中传入 MessageStream: "broadcast"。
进入 Server → Settings → Tracking,切换以下选项:
对于密码重置或魔法链接邮件,请关闭点击追踪——它会重写 URL,而部分邮件客户端会预取 URL,可能意外消耗掉一次性令牌。
进入 Server → Webhooks → Add webhook,选择事件类型:退信、垃圾投诉、打开、点击、送达。Postmark 会以 POST 请求将事件详情发送到你的 URL。
最重要的一点:对硬退信地址进行屏蔽处理。持续向无效地址发送邮件是损害发件声誉最快的方式。Postmark 客户端支持查询屏蔽列表,退信 Webhook 会提供结构化的事件数据供你处理。
免费套餐:每月 100 封,永久有效。
付费套餐:从 $15/月起,包含 10K 封邮件,超出后按比例计费。Postmark 定价 ↗。
单封邮件成本大约是 Resend 的 2–3 倍,AWS SES 的 10 倍。你为的是送达率——在独立的收件箱落地测试中,Postmark 的表现始终名列前茅。