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

PHP+GoDaddy站点配置Office 365邮件发送失败求助

Office 365替换GoDaddy邮件后PHP发件故障排查指南

一、先获取错误提示信息

要定位问题,必须先拿到具体错误日志:

  • 在PHP代码开头添加以下代码,强制输出运行时错误:
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    如果用PHPMailer类发件,开启SMTP调试模式获取交互日志:
    $mail->SMTPDebug = 2; // 输出完整SMTP对话过程
    
  • 登录GoDaddy主机后台,找到「错误日志」面板,查看PHP运行时的报错记录,里面会明确标注邮件发送失败的具体原因(比如认证失败、端口被拦截、服务器限制等)。

二、核心配置项核对(Office 365 vs GoDaddy)

原GoDaddy邮件的SMTP参数和Office 365完全不兼容,必须逐一修正:

  • SMTP服务器:必须填smtp.office365.com
  • 端口:固定用587(TLS加密),不要用465(Office 365对465支持有限)
  • 加密方式:启用TLS(注意是连接后启用TLS,不是SSL)
  • 认证要求:必须开启SMTP认证,使用info@mywebsite.com的Office 365账号密码;如果账号开了MFA,要改用应用专用密码
  • 发件人限制:发件人地址必须和认证的Office 365邮箱一致,GoDaddy会拦截伪造发件人的请求

三、GoDaddy主机的特殊限制排查

GoDaddy共享主机默认会限制外部SMTP连接:

  • 联系GoDaddy客服,确认是否允许主机连接smtp.office365.com的587端口
  • 若为共享主机,部分场景下只能使用GoDaddy自带邮件服务,或者升级到VPS/独立主机解除限制

四、Office 365发件示例代码(PHPMailer)

如果之前用原生mail()函数,建议换成PHPMailer提升兼容性,以下是可用配置:

require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

$mail->isSMTP();
$mail->Host = 'smtp.office365.com';
$mail->SMTPAuth = true;
$mail->Username = 'info@mywebsite.com';
$mail->Password = '你的Office365密码/应用专用密码';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

$mail->setFrom('info@mywebsite.com', '新会员申请');
$mail->addAddress('info@mywebsite.com');
$mail->Subject = '收到新会员申请';
$mail->Body = '会员申请详情...';

if(!$mail->send()) {
    echo '发送失败: ' . $mail->ErrorInfo;
} else {
    echo '发送成功';
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:22:19