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

GoDaddy线上服务器fsockopen连接smtp.googlemail.com:465被拒,本地正常

解决GoDaddy服务器上fsockopen连接Gmail SMTP被拒绝的问题

嘿,这个问题我帮不少开发者处理过,根源其实是GoDaddy共享主机的默认限制——它会封禁对外的SMTP端口(比如465、587这些常用端口),不让你直接连接外部SMTP服务(比如Gmail的),但本地环境没有这个限制,所以才会出现本地正常、线上报错的情况。下面给你几个靠谱的解决方案:

方案1:改用GoDaddy自带的SMTP中继服务器(最推荐)

GoDaddy提供了免费的内部SMTP中继,完全不会被拦截,配置起来也简单:

  • 把你代码里的SMTP地址改成 relay-hosting.secureserver.net 或者 localhost
  • 端口用25,不需要SSL/TLS加密
  • 不需要填写SMTP用户名和密码(因为是内部中继)

举个修改后的代码片段(假设你是手动用fsockopen连接的话):

// 替换原来的ssl://smtp.googlemail.com:465
$smtpHost = 'relay-hosting.secureserver.net';
$smtpPort = 25;
$socket = fsockopen($smtpHost, $smtpPort, $errno, $errstr, 30);

if (!$socket) {
    echo "Error: $errstr ($errno)";
} else {
    // 继续你的SMTP命令逻辑...
}

如果是用PHPMailer这类库的话,配置大概是这样:

$mail->isSMTP();
$mail->Host = 'relay-hosting.secureserver.net';
$mail->Port = 25;
$mail->SMTPAuth = false; // 不需要认证
$mail->SMTPSecure = false; // 不需要加密

方案2:如果一定要用Gmail SMTP(备选)

如果坚持要用Gmail的服务,有两个小技巧可以试试,但不一定100%有效(因为GoDaddy的限制可能随时调整):

  • 尝试用TLS加密+端口587,而不是SSL+465:把连接地址改成 tls://smtp.googlemail.com:587
  • 确保你的Gmail账号开启了“低安全性应用访问”(不过现在Gmail默认关闭,需要去账号设置里开启,或者用App密码)

不过还是要提醒你:GoDaddy对外部SMTP的限制很严格,这个方案可能随时失效,所以优先选方案1更稳妥。

额外注意点

  • GoDaddy的共享主机都有这个限制,如果你用的是VPS或者独立服务器,可能没有这个问题,可以直接用外部SMTP
  • 如果你用PHP原生的mail()函数,其实不需要手动连SMTP,GoDaddy会自动帮你通过内部中继发送,可能比自己写fsockopen更省心

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:35:25