php 发送邮件(HTML)解析乱码问题(多余叹号!等)

在使用PHP的mail函数发送包含HTML内容的邮件时,遇到解析乱码,特别是多余叹号等问题。经过排查,可能是HTML表情和CSS与邮件客户端不兼容,或是邮件内容过长导致。解决办法包括优化HTML代码,确保符合标准,或使用base64编码,并调整header中的Content-Transfer-Encoding。参考了相关论坛和文档来解决此问题。
摘要由CSDN通过智能技术生成

通过php代码调用mail函数发送邮件, 一个原本很简单的功能, 几小时就写完了, 但调试却花了我一天的时间. 现在把这个过程记录下来, 供以后参考.


问题描述: php mail 函数发送邮件, 头和内容分别为,

$header = "MIME-Version: 1.0\r\nContent-type: text/html; charset=utf-8\r\nFrom: test<test@test.com>";

$body = get_email_body($an_array);

其中, 参数$an_array 是从数据库中读出的数据, 函数get_email_body将数组中的内容拆分出来,以table的方式重新组织字符串, 最终返回html格式的内容体, 如: 

<html>
  <head>
  <style>...</style>
  </head>
  <body>
    <table border=\"1\" style=\"border-collapse:collapse;border:none\">
      <tr>...</tr>
      ... ...
      <tr>...</tr>
    </table>
    <br/>
    .... ....
  </body>
</html>        

一个简单到不能再简单的html邮件, 当
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值