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

部署在GoDaddy服务器的PHPMailer发信脚本触发504错误求助

解决GoDaddy服务器上PHPMailer发信504超时问题
  • 移除重复文件引入
    已经通过vendor/autoload.php加载了PHPMailer的全部依赖,无需再单独引入PHPMailer.php、SMTP.php、Exception.php,重复加载会引发代码冲突或冗余错误。删除以下三行代码:

    include('PHPMailer.php');
    include("SMTP.php");
    include('Exception.php');
    
  • 添加异常捕获逻辑
    当前代码未处理PHPMailer的异常,发送出错时会直接终止脚本,导致服务器超时返回504。用try-catch包裹发送流程,同时输出错误信息便于排查:

    try {
        $mail = new PHPMailer(true);
    
        // 原SMTP配置代码...
    
        $mail->send();
        echo '<script type="text/javascript">
            window.onload = function () { alert("Your email was sent!!!"); }
        </script>';
    } catch (Exception $e) {
        // 调试阶段输出错误,上线后可替换为友好提示
        echo "邮件发送失败: {$mail->ErrorInfo}";
    }
    
  • 统一发件地址与SMTP用户名
    GoDaddy要求发件人地址(setFrom)必须和SMTP认证用户名(Username)一致,否则会被拦截。修改setFrom为你的SMTP用户名对应邮箱:

    $mail->setFrom('email@mail.com'); // 与$mail->Username保持相同
    
  • 增加超时配置
    因网络延迟导致的连接超时是504错误的常见原因,添加超时参数延长等待时间:

    $mail->Timeout = 30; // 连接超时时间(秒)
    $mail->SMTPTimeout = 30; // SMTP操作超时时间(秒)
    
  • 验证GoDaddy SMTP参数
    确认GoDaddy的SMTP配置是否匹配:

    • Host:部分主机可能要求使用localhost替代smtpout.secureserver.net,可尝试切换测试
    • Port:若用ENCRYPTION_SMTPS加密方式,将端口改为465
    • SMTPSecure:对应端口调整加密类型,465端口用PHPMailer::ENCRYPTION_SMTPS,587端口保留ENCRYPTION_STARTTLS
  • 检查GoDaddy邮件限制
    GoDaddy对外部SMTP发送有严格限制,若上述配置仍无效,可尝试使用GoDaddy内置的mail()函数替代SMTP方式,或联系客服确认主机是否允许外部SMTP连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:28:12