cPanel 与 Plesk:DKIM、SPF 与 DMARC 配置

用 cPanel 的 Email Deliverability 与 Plesk 的邮件设置开启 DKIM、为共享主机修正 SPF,并手动补上两个面板都不会自动生成的 DMARC。
4 分钟阅读
更新于 2026-11-04
平台专区
cpanelpleskdkimspfdmarc

cPanel 和 Plesk 都自带 DKIM 签名,也都容易让人误以为"点一下就好了"。面板确实能生成密钥、写入 DNS 记录,但前提很具体:cPanel 必须掌控该域名的 DNS 区域,Plesk 只在域名使用自家 DNS 时才会自动补记录。而 DMARC 策略,两个面板都不会替你发布。

本文覆盖 cPanel 当前界面、廉价主机上仍可能遇到的旧界面,以及 Plesk 的对应操作。

准备工作

  • 拥有该域名的 cPanel 或 Plesk 账号登录权限。
  • 权威 DNS 区域的访问权限,可能在面板里,也可能在外部服务商。
  • 清楚邮件是本机托管,还是经 Google Workspace、Microsoft 365 这类外部服务中继。
  • 一个能收信的邮箱,如果你打算填写 rua 报表地址。

cPanel:从 Email Deliverability 入手

cPanel 84 及以上版本,打开电子邮件(Email)下的邮件投递(Email Deliverability)。每个域名会显示状态:Valid 表示 SPF 与 DKIM 记录符合服务器预期,Problems Exist 表示至少有一条缺失、格式错误或值不对。

如果域名用的是主机商的 NS,直接点修复(Repair)。cPanel 会列出准备写入的记录,确认前先看一眼,几分钟后刷新页面。如果 DNS 托管在别处(比如 Cloudflare),修复按钮不可用——面板无法写入不由它控制的区域,这时改用管理(Manage)。

cPanel:在 Manage 页读记录

管理页有三块需要关注:

  • DKIM —— 显示 default._domainkey 下应有的 TXT 记录。没有密钥时点生成本地 DKIM 密钥,再复制名称与值。除非 DNS 服务商存不下长值,否则用 Full 视图;Split 视图会把公钥按 255 字符切段,供不会自动拼接的服务商使用。
  • SPF —— 显示建议记录,通常是 v=spf1 +a +mx +ip4:203.0.113.10 ~all。+a 与 +mx 授权的就是这台服务器,所以 cPanel 默认的 SPF 对本机发信通常够用。点自定义(Customize)可以加入外部发信服务的 include 域。
  • 反向 DNS —— 检查发信 IP 的 PTR 是否与邮件主机名一致。共享主机上你自己改不了,需要开工单让主机商处理。

若域名的 DNS 在外部,把复制的 TXT 记录加到域名(Domains)→ 区域编辑器(Zone Editor)(区域在本机时),或加到 DNS 服务商处,再回来刷新。

cPanel:手动补 DMARC

cPanel 的投递工具核心是 SPF 与 DKIM。某些版本会给出 DMARC 建议记录,但不能指望它。自己加一条 _dmarc 下的 TXT:

_dmarc.yourdomain.com  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com"

更老的 cPanel 版本里,这个界面叫电子邮件认证(Email Authentication),位于电子邮件菜单下,按域名提供 DKIM 与 SPF 开关。打开开关只会在本机区域创建记录,公有 DNS 里是否真的有,还得自己确认。

Plesk:开启 DKIM 签名

先在服务器级别启用。进入工具与设置(Tools & Settings),打开邮件服务器设置(Mail Server Settings),在 DKIM 区域确认勾选了允许对外发邮件签名。然后按域名启用:网站与域名 → 选中域名 → 邮件标签 → 邮件设置,保持勾选使用 DKIM 垃圾邮件防护系统为外发邮件签名,点击应用。

域名使用 Plesk DNS 时,区域里会自动出现两条记录:default._domainkey.yourdomain.com(公钥)与 _domainkey.yourdomain.com(DKIM 策略)。使用外部 DNS 时,点击如何配置外部 DNS的提示,复制两条记录加到服务商处。若还用域名别名发信,别名的记录也要一并添加。

SPF 与 DMARC 在域名的DNS 设置里。Plesk 的 DNS 模板通常会带一条 v=spf1 +a +mx -all,也可能带 DMARC 记录,但迁移过的域名或外部托管的区域不保证有。要核实,不要假设。

验证两个面板的配置

从服务器上的邮箱往 Gmail 发一封信,打开显示原始邮件,需要看到 spf=pass、dkim=pass(d= 为你的域名)、dmarc=pass。再从外部核对:DKIM 检测(selector 填 default)、SPF 检测、DMARC 查询、TXT 查询。想一次看全,跑 邮件健康检查。

常见错误

  1. 共享主机漏掉服务商的发信 IP。邮件若经主机商的中继而不是你账户的 IP 发出,要把该中继或其 include 域加入 SPF,只写 +a +mx 仍可能失败。
  2. DNS 在外部却以为修复成功了。cPanel 写不进第三方区域,不手动复制记录,状态会一直是无效。
  3. 发布了两次 DMARC。_dmarc 下旧记录加新记录会让结果不可预测,只能有一条。
  4. PHP 程序发的信没经过 milter。cPanel 文档提示,取决于 PHP 处理器,PHP 应用发出的邮件可能无法通过 DKIM 验证,应改为走认证 SMTP。
  5. Plesk 用了外部 DNS 却没配记录。域名开关是开的,公网区域里却没有公钥,本机签了名,接收方验不过。

常见问题

cPanel 会自动创建 DMARC 记录吗?

不可靠。较新的版本可能在邮件投递页给出建议记录,但稳妥的假设是"DMARC 需手动":自己在 _dmarc 下加 TXT,从 p=none 起步。

为什么显示 Valid,邮件还是进垃圾箱?

Valid 只说明 SPF 与 DKIM 符合服务器预期。信誉、PTR、内容质量、投诉率都不在这个检查范围内。跑一次完整的投递测试,并确认发信 IP 没有被列入黑名单。

Plesk 用外部 DNS 也能开 DKIM 吗?

能,但 Plesk 无法替你发布记录。按域名开启签名后,打开外部 DNS 提示,把 default._domainkey 的 TXT 与 _domainkey 的策略记录都加到服务商处。

共享主机上用 1024 位 DKIM 可以吗?

有签名总比没有好,但 2048 位才是当前基线。如果面板多年前生成的是 1024 位,先重新生成并更新 TXT,再考虑收紧 DMARC。

这篇指南有帮助吗?