邮件服务器返回“end with”并不是错误代码,而是 SMTP 会话中 DATA 阶段服务器给出的正常结束提示,完整格式通常是“354 End data with
“end with”在 SMTP 会话中的原始样子
邮件客户端和邮件服务器之间用的是 SMTP 协议对话,客户端发送 DATA 命令,表示“我要开始传输邮件正文了”,服务器如果准备好接收,就会返回:
354 End data with <CR><LF>.<CR><LF>
这里的 <CR><LF> 就是回车换行,Windows 下写作 rn,英文句点 必须单独占一行,前后都有回车换行,服务器收到这个句点,就知道正文发完了。
一段典型的 telnet 会话如下:
220 mail.example.com ESMTP
EHLO test.com
250-mail.example.com
MAIL FROM:<sender@example.com>
250 OK
RCPT TO:<recipient@example.com>
250 OK
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: test
hello body
.
250 OK
QUIT
221 Bye
可以看到,354 后面跟着的那句话就是“end with”提示,它出现在正文发送之前,而不是报错阶段。
为什么你会看到“end with”提示
看到这个提示通常有两种场景:
- 命令行手动测试:你通过 telnet、openssl 或 nc 连接邮件服务器,输入
DATA后,服务器直接返回这行文字。 - 邮件客户端日志:Foxmail、Outlook、Thunderbird 等客户端在发送失败时,会把服务器会话日志显示出来,日志里包含
354 End data with...,很多人就误以为它是出错原因。
按照 RFC 5321 对 SMTP DATA 阶段的规定,DATA 命令成功后的预期响应就是 354,服务器用这个响应告诉客户端怎么结束正文,它本身不代表任何故障。
实操:手动测试 SMTP 的“end with”
telnet 25 端口明文测试
- 打开终端,输入
telnet mail.你的域名.com 25 - 看到
220开头响应后,输入EHLO test.com - 依次输入:
MAIL FROM:<发件人地址>RCPT TO:<收件人地址>
- 输入
DATA - 看到
354 End data with <CR><LF>.<CR><LF>
- 输入邮件头,
Subject: test,空一行,输入正文 - 输入一个单独的英文句点 并按回车
- 服务器返回
250 OK表示收下
这里有个细节:第 7 步的句点前不要有空格,句点后直接回车,如果多敲了一个空格,服务器可能不认为正文结束。
openssl 测试 465 端口加密连接
很多企业邮箱只开放 465 端口,命令写作:
openssl s_client -connect mail.你的域名.com:465 -crlf
进入加密会话后,步骤和 telnet 相同。-crlf 参数保证客户端发出的换行是回车换行,而不是单纯的换行符,如果不用这个参数,相当一部分 Unix 终端只发 n,服务器可能一直等不到正确的结束符。
企业邮箱发送邮件返回“end with”原因是什么
场景很典型:网页版发信正常,客户端发信卡住或失败,日志显示 354 End data with...,多数情况下,这不是企业邮箱服务器故障,而是客户端没有正确完成 DATA 结束序列。
常见原因有:
- 安全软件或邮件杀毒拦截:客户端本应发出的单独句点被本地安全软件过滤,导致服务器一直等待正文结束,内容里恰好有单独一行的英文句点:这会被客户端或服务器误当作结束符,导致后续数据被截断或乱序。
- SSL/TLS 协商不完整:部分旧客户端默认用明文 STARTTLS,但企业邮箱强制 SSL,导致 354 返回后连接不稳定,结束符没送达服务器。
- 端口配错:使用 25 端口发送,但本地运营商屏蔽了 25 端口,导致 DATA 阶段中断。
排查时可按这个顺序操作:
- 取消邮件客户端里的“发送前扫描邮件”选项。
- 将发送服务器端口改为 465,加密方式选 SSL/TLS。
- 如果使用 587 端口,加密方式选 STARTTLS。
- 新建测试账号,排除旧配置文件缓存干扰。
Foxmail连接邮件服务器提示“end with”怎么解决
Foxmail 用户遇到发送失败,查看发送日志会发现 354 End data with 后面没有顺利出现 250 OK,这说明服务器还在等结束符,但客户端没有成功发送。
解决步骤:
- 打开 Foxmail 设置,进入账号管理。
- 找到目标账号的服务器设置。
- 发送服务器填写企业邮箱 SMTP 地址。
- 端口改为 465,加密方式选 SSL/TLS。
- 取消勾选“自动选择加密方式”,手动指定。
- 关闭 Foxmail 的邮件病毒扫描功能。
- 重建账号,避免旧配置残留。

如果在公司网络内发送失败,可能是公司防火墙对 SMTP 的 DATA 阶段做了深度包检测,拦截了单独的句点行,此时可以尝试切换手机热点测试,快速判断是否网络策略问题。
邮件服务器返回错误代码“end with”和554的区别
很多人看到“end with”就以为服务器拒绝了邮件。354 end with 和 554 完全是两回事。
| 返回信息 | 类型 | 含义 | 需要处理吗 |
|---|---|---|---|
| 354 End data with… | 3xx 正常提示 | 服务器等待正文,告诉结束格式 | 按格式结束正文即可 |
| 554 Transaction failed | 5xx 永久拒绝 | 服务器拒绝该邮件 | 检查收件人地址或内容 |
| 550 Mailbox unavailable | 5xx 永久拒绝 | 邮箱不存在 | 确认地址拼写 |
| 451 Temporary failure | 4xx 临时错误 | 稍后重试 | 等待后重新发送 |
简单说,看到 354 end with 说明服务器还在等你的正文,看到 554 才是真正的拒绝,行业共识认为,SMTP 3xx 响应都属于过程状态,不应视为故障码。
手动测试中“end with”后卡住怎么办
如果输入句点后服务器一直没反应:
- 确认句点前是否先按了回车,让句点单独成行。
- 确认句点前后没有多余空格。
- 检查 openssl 命令是否加了
-crlf。 - 尝试用
nc -c或 telnet 的本地换行模式,避免只发n。 - 用
Ctrl+]退出 telnet,重新测试。
如果多次测试都在 354 后卡住,可以抓包查看客户端是否真的发出了 rn.rn,业内有运维人员反馈,相当一部分客户端失败是因为本地防火墙改写了换行符。
邮件服务器返回“end with”的完整成功路径

判断发送是否成功,不能只看 end with,完整路径应该是:
- 客户端发送
DATA - 服务器返回
354 End data with <CR><LF>.<CR><LF> - 客户端发送邮件头和正文
- 客户端发送单独句点
- 服务器返回
250 OK或类似250 2.0.0的成功提示
只有看到第 5 步的 250,才说明邮件已经被服务器接收,如果第 5 步出现 550、554、451,那才是真正需要排查的错误码。
海外邮件服务器返回“end with”延迟高怎么排查
跨境 SMTP 会话中,354 end with 返回后等待时间可能明显变长,这不代表服务器故障,而是国际链路延迟叠加了 SMTP 交互轮次。
排查方向:
- 使用
openssl s_client -connect 海外服务器:465 -crlf测试,观察从DATA到354的耗时。 - 如果在
354后卡住,先确认本地网络到目标服务器的丢包情况。 - 减少邮件正文大小,排除大附件导致的数据传输延迟。
- 尝试使用本地中继服务器转发,避免直接跨境发送。
多数情况下,海外邮件服务器返回“end with”本身含义不变,只是链路延迟让整个 DATA 阶段显得更慢。
邮件服务器返回“end with”是正常引导语,不是报错,真正判断发送是否成功,要看句点之后服务器给的是 250 还是 5xx。
邮件服务器返回end with什么意思常见问答
邮件服务器返回“end with”是错误吗
不是错误,返回码 354 属于正常过程码,表示服务器已准备好接收正文,并提示结束方式,只有后续返回 5xx 才是真正的拒绝。
“end with”里的“.”实际操作应该怎么打
在终端中发完正文后,先按一次回车另起一行,输入一个英文句点 ,再按一次回车,使用 openssl 时加 -crlf 参数,避免只发换行符导致服务器不认。
邮件服务器返回“end with”和“554 end with”有什么区别
前者对应 354,是正常等待数据的提示,后者对应 554,是永久拒绝,如果看到 554,需要检查收件人地址、发信内容或服务器反垃圾策略。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/848086.html


评论列表(2条)
读了这篇文章,我深有感触。作者对邮件服务器返回的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
@美饼3470:这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是邮件服务器返回部分,给了我很多新的思路。感谢分享这么好的内容!