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

PHPMailer报错‘Sender not allowed’,邮件发送突发故障求助

解决PHPMailer发件人不允许的错误

问题核心是Aruba的SMTP服务器限制发件人地址必须与SMTP认证的用户名一致。你当前用info@mydomain.it做SMTP登录,但setFrom使用了外部邮箱(gmail/outlook),违反了Aruba的发件规则,因此触发"Mittente non consentito / Sender not allowed"错误。

修复步骤

  • 将setFrom的邮箱地址改为与SMTP用户名一致的info@mydomain.it,可保留自定义发件人名称。
  • 若需要让收件人回复到用户的真实邮箱,不要修改setFrom,改用addReplyTo方法添加用户邮箱。

修改后的代码示例

try {
  $mail->SMTPDebug = 2;
  $mail->isSMTP();
  $mail->Host = 'smtps.aruba.it';
  $mail->SMTPAuth = true; 
  $mail->Username = 'info@mydomain.it'; 
  $mail->Password = 'myPassword';
  $mail->SMTPSecure = 'tls'; 
  $mail->Port = 587;
  
  // 发件人必须与SMTP认证用户名一致
  $mail->setFrom("info@mydomain.it", 'Sender');
  // 添加用户邮箱作为回复地址(按需使用)
  $mail->addReplyTo("myemail@gmail.com", '用户名称');

  $mail->addAddress('info@mydomain.it');
  $mail->isHTML(true); 
  $mail->Subject = "Subject";  
  $mail->Body    = "Body";

  if (!$mail->send()) { 
    $result = array('status'=>"error", 'message'=>"Mailer Error: ".$mail->ErrorInfo);
    print_r(json_encode($result));
  } else {
    $result = array('status'=>"success", 'message'=>"Message sent.");
    print_r(json_encode($result));
  }
} catch (Exception $e) {
    echo "Error exception: ".$e;
}

补充说明

多数邮件服务商(包括Aruba)都会限制SMTP发件人地址与登录邮箱一致,这是防止垃圾邮件和伪造发件人的常规规则。即使之前能正常使用,可能是服务商后续收紧了规则,或是之前的配置侥幸通过。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:15:44