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

GoDaddy共享主机中PHPMailer发送HTML邮件显示源码求助

解决GoDaddy共享主机PHPMailer发送HTML邮件显示源码的问题

问题概述

在GoDaddy共享主机环境中使用PHPMailer发送HTML格式邮件,邮件可正常送达,但收件端显示的是HTML源码而非渲染后的页面。

核心问题及修复方案

1. 调整isHTML()的调用顺序

PHPMailer的isHTML(true)方法负责将邮件的Content-Type标记为text/html,必须在设置$mail->Body之前调用。原代码中该方法在赋值Body之后执行,导致邮件头未被正确标记为HTML类型,收件端会将内容当作纯文本解析。

2. 移除WordWrap设置

$mail->WordWrap = 50会强制长文本每50个字符换行,这会破坏HTML标签的完整性(比如标签被截断拆分),直接导致HTML无法正常渲染,建议移除该配置。

3. 修正GoDaddy SMTP配置

GoDaddy共享主机对本地localhost邮件服务的支持有限,无法保证HTML邮件头的正确处理,建议改用官方指定的SMTP服务器:

  • Host: smtpout.secureserver.net
  • Port: 587(搭配TLS加密)或465(搭配SSL加密)
  • 开启SMTPAuth:$mail->SMTPAuth = true,并填入你的GoDaddy邮箱账号和密码
  • SMTPSecure对应设置为'tls'(587端口)或'ssl'(465端口)

4. 检查HTML模板完整性

确认otpmailcontent.txt中的HTML代码格式正确:

  • 所有标签闭合完整
  • 无语法错误
  • 文件编码为UTF-8,避免乱码或解析异常

修改后的示例代码

$template = file_get_contents('otpmailcontent.txt', FILE_USE_INCLUDE_PATH);
$template = str_replace("###fullname###", $fullname, $template);
$template = str_replace("###otpcode###", $otp, $template);

$email = $toemail;
$mail = new PHPMailer();
$mail->SMTPDebug = 0; 

// 改用GoDaddy官方SMTP配置
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls'; 
$mail->Host = 'smtpout.secureserver.net';
$mail->Port = 587;
$mail->Username = 'your-godaddy-email@domainname.com'; // 替换为你的GoDaddy邮箱账号
$mail->Password = 'your-email-password'; // 替换为你的邮箱密码

$mail->setFrom('Sales@domainname.com', 'Signup OTP');
$mail->addReplyTo('donotreply@domainname.com', 'Signup OTP');
$mail->addAddress($email);

// 先设置HTML格式,再赋值邮件内容
$mail->isHTML(true);
$mail->Subject = 'Signup-OTP';
$mail->Body = $template;
// 设置纯文本备用内容,适配不支持HTML的邮件客户端
$mail->AltBody = "您好{$fullname},您的注册验证码是:{$otp}";

if(!$mail->send()) {
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   echo 'Email Has not Sent';
   exit;
} else {
  echo "email sent";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:46:11