You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP mail函数发送HTML邮件时客户端定期插入空格问题求助

PHP mail函数发送HTML邮件时客户端定期插入空格的原因解析

这个现象的核心原因是SMTP协议的历史行长度限制:

  • 早期SMTP规范(RFC 821)强制要求邮件内容的每行长度不能超过1000字符(包含行尾的CRLF换行符)。虽然后续的RFC标准放宽了这一限制,但大量邮件传输代理(MTA)和客户端为了兼容旧系统,依然保留了自动拆分超长行的逻辑。
  • PHP的mail()函数本身不会对传入的HTML内容做行长度处理,当你发送未分割的长HTML文本时,MTA会在接近1000字符的位置插入空格+换行来拆分长行。部分客户端(比如Outlook、Apple Mail)在渲染时会忽略换行但保留空格,就造成了你看到的每约998字符出现一个空格的情况——预留的2个字符就是行尾的CRLF。
  • 这种拆分如果落在URL这类连续字符中间,自然会破坏链接的有效性,这也是你遇到不便的直接原因。

你用HTML格式填充避开URL区域的临时方法是合理的,本质是通过在HTML标签的自然断点处拆分内容,让MTA的自动拆分不会命中URL的连续字符段。

内容的提问来源于stack exchange,提问作者Charles Looker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:52:07