在 Debian 上使用 Postman 实现邮件跟踪的可行路径
核心说明
推荐实现方案
Postman 请求示例与脚本
{
"personalizations": [{ "to": [{ "email": "recipient@example.com" }] }],
"from": { "email": "sender@example.com" },
"subject": "Test from Postman",
"content": [{ "type": "text/plain", "value": "Hello, tracking!" }]
}
const json = pm.response.json();
pm.test("status is 202", () => pm.expect(json.statusCode).to.eql(202));
// 若返回包含 message_id(不同厂商字段名可能不同,如 sg_message_id)
if (json.message_id) pm.environment.set("message_id", json.message_id);
pm.test("status 200", () => pm.response.to.have.status(200));
const events = pm.response.json();
const delivered = events.some(e => e.event === "delivered");
const failed = events.some(e => ["bounce","complaint"].includes(e.event));
pm.test("has delivered or failed", () => pm.expect(delivered || failed).to.be.true);
if (failed) pm.collectionVariables.set("alert", "true");
newman run EmailAPI.postman_collection.json \
--env-var "base_url=https://api.example.com" \
--reporters cli,json \
--reporter-json-export report.json
常见坑与排查要点