Hostinger主机PHP mail()函数长邮件无法被客户接收问题求助
Hostinger主机PHP mail()函数长文本邮件无法送达问题
我在Hostinger主机部署的PHP应用中,使用mail()函数给客户发送邮件。短文本邮件可正常接收,但当文本字符数超过特定限制后,主机显示发送成功,客户却收不到邮件。
奇怪的是,完全相同的代码在我另一个Hostinger账户上运行正常,长文本邮件能正常送达。以下是已稳定运行2年的测试代码:
$content=' hi admin, There is a new order to sweet with the reference number 47 from customer Josef Saliba <!--<div style="display: block;max-height: 70px;max-width: 200px;">--> <!--</div>--> <table border="0"> <tr><td>Customer Name</td><td>Josef Saliba</td></tr><tr><td>Merchant Name</td><td>sweetnfresh</td></tr><tr><td>Telephone</td><td>sweetnfresh</td></tr><tr><td>Address</td><td>999 8 St SW Calgary AB T2R1J5</td></tr><tr><td>TRN Type</td><td>delivery</td></tr><tr><td>Payment Type</td><td>COD</td></tr><tr><td>Reference #</td><td>47</td></tr><tr><td>TRN Date</td><td>Aug 24,2022 3:09:10 am</td></tr><tr><td>Delivery Date</td><td>Aug 24,2022</td></tr><tr><td>Deliver ASAP</td><td>Yes</td></tr><tr><td>Deliver to</td><td>calgary calgary ALBERTA </td></tr><tr><td>Delivery Instruction</td><td></td></tr><tr><td>Location Name</td><td></td></tr><tr><td>Contact Number</td><td>+1343243242</td></tr><tr><td colspan="2"> </td></tr><tr><td colspan="2"><b></td></b></tr><tr><td>1 Oldenburger 100% Rye</td><td>$8.29</td></tr><tr><td colspan="2"> </td></tr><tr><td>Sub Total:</td><td>$8.29</td></tr><tr><td>Delivery Fee:</td><td>$1.99</td></tr><tr><td>Tax 5%</td><td>$0.41</td></tr><tr><td>Tips 10%:</td><td>$1.22</td></tr><tr><td>Service Fee:</td><td>$1.50</td></tr><tr><td>Total:</td><td>$13.41</td></tr> </table> Kind Regards'; sendEmail( //my mailing function 's****@gmail.com', //to 'info@g**.ca', //from 'test', //subject $content, 20000 );
排查与解决步骤
1. 核查账户邮件限制
Hostinger不同套餐的单邮件大小、每日发送配额可能存在差异。登录异常账户的控制面板,进入邮件管理或主机设置,查看:
- 单邮件最大允许容量(长HTML邮件易超出低配额限制)
- 每日邮件发送阈值(长邮件可能触发更严格的流量管控)
2. 修复邮件格式与头信息
mail()函数默认发送纯文本,若你的sendEmail未配置HTML头,长HTML内容易被反垃圾系统拦截:
- 在
sendEmail中添加Content-Type: text/html; charset=UTF-8邮件头 - 确保
From地址为Hostinger验证过的域名邮箱,避免被标记为伪造发件人
3. 查看邮件发送日志
进入Hostinger控制面板的日志->邮件日志,查看长邮件发送后的记录:
- 日志会显示邮件是否被中转服务器拒收、是否进入垃圾池,或存在内容过滤提示
- 对比两个账户的日志差异,定位具体拦截原因
4. 修正HTML格式错误
测试代码中存在未闭合的<b>标签(<tr><td colspan="2"><b></td></b></tr>),这类格式错误可能被反垃圾系统判定为恶意内容:
- 修复所有未闭合标签、转义特殊字符,再测试长邮件发送
5. 切换为SMTP发送
Hostinger本地mail()服务稳定性不如SMTP,改用平台提供的SMTP服务器发送:
- 使用
PHPMailer等库,配置SMTP参数(服务器:smtp.hostinger.com,端口465/587,SSL/TLS验证) - SMTP发送可精准控制邮件头与格式,大幅降低拦截概率
内容的提问来源于stack exchange,提问作者shayan izadi
相关产品推荐
相关产品推荐

