MailPlus 安全日志总对照:三十条代码分三区,丢邮件先在这里找路
痛点场景
业务同事来报:客户发来的合同邮件没收到,对方邮件服务器显示投递成功。你打开 MailPlus Server > 审核 > 日志,翻到一条带代码的记录,比如 550 5.7.1,后面跟着一句英文——这一串代码到底在说什么,是该改自己服务器的设置,还是该让发件方去修配置?
官方知识库专门维护了一篇《MailPlus 安全日志索引》,把审核日志中可能出现的常见安全日志整理成一张总表,开篇就点明定位:邮件服务器经常通过网络进行通信,因此经常成为恶意攻击的目标,MailPlus Server 维护各种安全日志来进行保护属于正常运作;如果您丢失了重要电子邮件,请先检查日志以了解原因和解决方案。本文把这张官方对照表做成选路地图,并标注每条日志此前是否已有专文详解。
先记住分区规则:4 是缓期、5 是终拒、无码是策略命中
拿到一条日志,看代码第一位就能分诊:
- 4 开头:临时性失败。对方服务器稍后会自动重试,处置窗口比较从容,多数情况是请发件方补 DNS 记录即可化解;
- 5 开头:最终拒绝。邮件已经被退回,重试也进不来,要么是发件方确实有问题,要么是你这边某项安全检查拦得比预期严;
- 无代码日志:不对应 SMTP 状态码,是安全策略直接命中的记录,重点看触发的策略名。
下面按这三区逐条过一遍。标注「已发专文」的条目,站内有单独一篇详解处置步骤,按标题检索即可。
第一区:以 4 开头的临时拒绝(7 条)
| 代码 | 日志消息 | 一句话定性 |
|---|---|---|
| 450 4.7.1 | Helo command rejected: Host not found | 对方 HELO 自报的主机名解析不到,临时拒绝(已发专文) |
| 450 4.7.1 | Error: too much mail from user account | 单帐户发信量超限被缓发 |
| 450 4.7.1 | Error: mail flow exceeds from user account | 单帐户邮件流量超限被缓发 |
| 450 4.1.8 | Sender address rejected: Domain not found | 发件域解析不到,临时拒绝(已发专文) |
| 451 4.7.1 | Service unavailable - try again later | 服务暂不可用,请稍后重试 |
| 451 4.7.1 | Greylisting in action, please come back later | 灰名单生效,首投暂缓等复投(已发专文) |
| 450 4.7.25 | Client host rejected: cannot find your hostname | 客户端主机找不到自己的主机名被拒 |
这一区里 450 4.7.1 的 Host not found 与 450 4.1.8 的 Domain not found 是近亲:前者卡在 HELO 主机名,后者卡在发件域,排查对象不同,别认错。两条 too much mail / mail flow exceeds 开头的日志指向单帐户的发信量或流量配额,多半出现在群发场景。
第二区:以 5 开头的最终拒绝(19 条)
| 代码 | 日志消息 | 一句话定性 |
|---|---|---|
| 503 5.5.0 | Recipient address rejected: Improper use of SMTP command pipelining | 对方违规使用管道传输(已发专文) |
| 504 5.5.2 | Helo command rejected: need fully-qualified hostname | HELO 主机名不是完全限定域名(已发专文) |
| 5.2.2 | Recipient address rejected: Quota exceeded | 收件人邮箱已满配额(已发专文) |
| 550 5.5.1 | Protocol error | 协议错误(已发专文) |
| 550 5.7.1 | Error: [IP] exceeded unknown recipient count limit | 对方 IP 试探过多不存在的收件人 |
| 550 5.7.1 | Service unavailable; client [IP] blocked using xbl.spamhaus.org | 对方 IP 在 Spamhaus 黑名单上 |
| 550 5.7.1 | Recipient address rejected: Message rejected due to: SPF fail | SPF 校验未过(已发专文) |
| 550 5.1.1 | Recipient address rejected: User unknown | 收件人不存在(已发专文) |
| 551 5.7.1 | Go away | 已被灰名单阻止的目标(已发专文) |
| 552 5.3.4 | Message size exceeds fixed limit | 整封邮件超出大小上限(已发专文) |
| 554 5.7.1 | Client host rejected: Access denied | 客户端主机被拒 |
| 554 5.7.1 | Sender address rejected: Access denied | 发件人地址被拒 |
| 554 5.7.1 | Recipient address rejected: Access denied | 收件人地址被拒 |
| 554 5.7.1 | Sender address rejected: not owned by user admin | 发件人不拥有该地址,验发件人身份 |
| 554 5.7.1 | Relay access denied | 中继投递被拒(已发专文) |
| 5.7.1 | Attachment type not allowed | 附件类型在封锁名单(已发专文) |
| 5.7.1 | Attachment size overflow | 附件大小超限(已发专文) |
| 5.7.1 | Rejected by SPF policy for domain with invalid ARC result | SPF 政策拒绝且 ARC 结果无效(已发专文) |
| 5.7.1 | Rejected by DMARC policy for domain with invalid ARC result | DMARC 政策拒绝且 ARC 结果无效 |
这一区信息量最大。几组容易混淆的:三条 Access denied 分别对应客户端、发件人、收件人三个被拒对象,处置入口不同;not owned by user admin 那条卡的是帐号与发件地址的归属关系,多帐户共用系统时常见;黑名单(Spamhaus)与未知收件人试探两条说明对面行为可疑,拒绝本身是保护在起作用。
第三区:无代码日志(4 条)
| 日志消息 | 一句话定性 |
|---|---|
| Client host triggers DISCARD action | 触发丢弃动作,邮件被直接丢弃 |
| Bad DKIM signature data: spam | DKIM 签名数据无效并标记为垃圾邮件(已发专文) |
| Detected and rejected fragmented message section | 检测并拒绝分段的邮件区段(已发专文) |
| Detected and rejected external message body | 检测并拒绝外部邮件正文(已发专文) |
这四条没有 SMTP 状态码,直接对应安全策略的命中记录,排查时从消息里的策略关键词入手。
官方给的延伸阅读
索引页末尾官方给了两处:一是 Synology MailPlus 的常见问题汇总,二是 Google Workspace 管理员帮助里关于 SMTP 错误消息的说明——状态码体系是跨厂商通用的,Google 那份文档可当作代码语义的旁证。
运维建议
- 把这张对照表放在手边,先对代码定性,再决定动谁:4 开头优先请发件方修配置,5 开头先核对自己的安全设置是否拦错了正规邮件;
- 同一条日志反复出现时值得单独深挖,站内已有十余条专文覆盖高频日志的逐步处置;
- 涉及 SPF、DKIM、DMARC 的几条,根源多在域名 DNS 记录,改设置前先把发件域的身份记录理一遍。
丢邮件的排查,对表定性永远排在动手改设置之前。诚鑫致达科技维护客户邮件系统时,把这张代码对照表钉在运维手册第一页,先对表、再出手,改配置的方向一次就能走对。