澄清与定位
Postman 是用于 API 开发与测试 的工具,本身不提供电子邮件撰写与发送功能,因此不存在在 Postman 里设置“邮件签名”的选项。如果你的诉求是“在 Debian 上发送带自定义文本签名的邮件”,应使用邮件客户端(如 Thunderbird、Evolution)或搭建邮件服务器(如 Postfix + OpenDKIM)来实现。
方案一 使用邮件客户端设置文本签名
- Thunderbird
- 打开 Thunderbird → 右上角菜单 ≡ → Account Settings(账户设置)。
- 选择你的邮箱账户 → 在底部 Signature text(签名文本)中输入你的签名(可包含 HTML)。
- 勾选 Attach the signature to messages(附加签名到消息),按需勾选 Include signature for replies(回复也包含签名)。
- 保存后新建邮件即可看到签名。
- Evolution
- 打开 Evolution → Edit → Preferences(首选项)→ Mail Accounts(邮件账户)。
- 选中账户 → 点击 Edit(编辑)→ Compose(撰写)页签。
- 在 Signature(签名)处选择 Text 或 HTML,输入签名内容;勾选 Automatically attach signature(自动附加签名)。
- 确认保存,新邮件将自动附带签名。
方案二 搭建邮件服务器并添加 DKIM 签名
若你希望系统级地为外发邮件自动签名(提升可信度与到达率),可在 Debian 上部署 Postfix + OpenDKIM,为出站邮件添加 DKIM 数字签名(注意:这是“数字签名”,不同于可视的“文本签名”)。
- 安装组件
- sudo apt update
- sudo apt install postfix opendkim opendkim-tools
- 生成 DKIM 密钥
- sudo mkdir -p /etc/opendkim/keys/yourdomain.com
- sudo opendkim-genkey -t -s mail -d yourdomain.com
- 生成的私钥:/etc/opendkim/keys/yourdomain.com/mail.private
- 生成的公钥记录内容:/etc/opendkim/keys/yourdomain.com/mail.txt
- 配置 OpenDKIM
- /etc/opendkim.conf 关键项:
- Domain yourdomain.com
- Selector mail
- KeyFile /etc/opendkim/keys/yourdomain.com/mail.private
- Socket inet:12301@localhost
- 启动服务:sudo systemctl start opendkim && sudo systemctl enable opendkim
- 配置 Postfix 使用 DKIM Milter
- /etc/postfix/main.cf 追加:
- milter_default_action = accept
- milter_protocol = 6
- smtpd_milters = inet:localhost:12301
- non_smtpd_milters = inet:localhost:12301
- 重启 Postfix:sudo systemctl restart postfix
- 发布 DKIM 公钥到 DNS
- 在域名 DNS 中添加 TXT 记录:
- 名称:mail._domainkey.yourdomain.com
- 值:将 mail.txt 中括号内的内容合并为一行(去掉引号与换行)。
- 测试
- 发送测试邮件,使用 DKIM 验证工具或在线检查器确认 DKIM-Signature 头部存在且通过验证。
- 可进一步配置 SPF 与 DMARC 记录,提升邮件可信度与合规性。
方案三 如果你指的是 API 请求的签名
Postman 可在 Pre-request Script 中按接口规则生成签名并写入变量,供请求使用(这不是邮件签名)。示例(按参数排序后拼接密钥并取 MD5):
- Pre-request Script
- var keys = Object.keys(pm.request.body.raw || {}).sort();
var qs = keys.map(k =>
${encodeURIComponent(k)}=${encodeURIComponent(pm.request.body.raw[k])}).join(‘&’);
var sign = CryptoJS.MD5(qs + ‘YOUR_SECRET’).toString();
pm.environment.set(‘sign’, sign);
- 在请求头或参数中使用:Sign: {{sign}}
上述方式适用于对请求参数进行签名,与电子邮件签名无关。