You need to enable JavaScript to run this app. PHP使用mail函数发信时验证链接自动插入<br />的原因及解决方法
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用mail函数发信时验证链接自动插入<br />的原因及解决方法

PHP发送验证邮件时链接自动插入<br />标签问题原因及解决方案

问题原因

  • 未声明邮件MIME类型是核心诱因:你的代码没有在邮件头中指定内容类型,邮件服务端或客户端会默认将内容中的换行符自动转换为<br />标签,你在拼接$message时链接前后的换行被误插入到了链接字符串中,所以才会出现你没有手动写<br />但邮件里多出来该标签的情况。
  • 两种展示形态差异的原因:邮件默认被按HTML格式解析,<a>标签的href属性中的<br />会被URL编码为%3Cbr%20/%3E,而<a>标签的显示文本中的<br />会被渲染为换行效果,所以两者的展示形态不一致。

解决方案

在邮件头中添加MIME版本和内容类型声明即可解决,修改后的邮件头代码如下:

$headers = "From:noreply@example.com\r\nMIME-Version: 1.0\r\nContent-type: text/plain; charset=UTF-8\r\n";

如果后续需要发送带HTML样式的邮件,可以将Content-type改为text/html,同时注意优化$message字符串的写法,去掉不必要的缩进和换行,也能从根源上避免换行被转换为<br />的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 05:57:05