GoDaddy切换Office365后PHPMailer SMTP连接失败求助
解决GoDaddy托管环境下PHPMailer连接Office365 SMTP失败的问题
你的问题核心是GoDaddy托管环境默认封锁了对外部SMTP服务器的出站连接,包括Office365的smtp.office365.com,所以无论更换端口还是加密方式,都会触发10013权限错误。以下是可行的解决方案:
方案1:使用GoDaddy自带的SMTP中继服务(推荐)
GoDaddy提供内部SMTP中继,无需认证且不会被防火墙拦截,只需调整PHPMailer设置:
$mail->SMTPDebug = 2; $mail->isSMTP(); $mail->Host = 'relay-hosting.secureserver.net'; // 也可直接使用localhost $mail->SMTPAuth = false; // 无需用户名密码认证 $mail->Port = 25; // 关键:发件人邮箱必须属于你在GoDaddy托管的域名 $mail->From = 'your-domain-email@your-godaddy-domain.com'; $mail->FromName = 'myname'; $mail->addAddress('to@destination.com');
注意:From地址必须是你在GoDaddy绑定的域名下的邮箱,否则会被中继服务拒绝。
方案2:改用Sendmail模式发送(适合必须使用Office365邮箱的场景)
如果一定要用Office365邮箱发件,绕过SMTP端口限制,可切换为PHPMailer的Sendmail模式:
$mail->SMTPDebug = 2; $mail->isSendmail(); // 替换原有的isSMTP() // 发件人地址需与你的Office365邮箱完全一致 $mail->From = 'user@username.com'; $mail->FromName = 'myname'; $mail->addAddress('to@destination.com');
此方式依赖GoDaddy服务器上的Sendmail服务转发邮件到Office365,需确保你的Office365邮箱允许来自GoDaddy服务器的邮件转发。
方案3:联系GoDaddy支持调整防火墙规则(不推荐)
你可以尝试联系GoDaddy客服,申请解除对smtp.office365.com特定端口(587/465)的出站封锁,但GoDaddy通常不会为普通托管用户开放此权限,仅部分高级商务托管方案支持。
错误原因补充
你遇到的10013错误,在GoDaddy托管环境中本质是网络防火墙阻止了出站SMTP连接,而非PHP代码权限问题。本地PowerShell能成功发送,是因为你的本地网络不受GoDaddy防火墙限制。
内容的提问来源于stack exchange,提问作者KontrCode
相关产品推荐
相关产品推荐

