我正在尝试使用 smtp 通过 phpmailer 发送邮件。我正在使用我在 Outlook 上使用的主机以及相同的用户名和密码。我收到错误。有人可以帮我解决这个问题吗?
我的错误:
SMTP -> ERROR: RCPT not accepted from server: 554 5.7.1 : Client host rejected: Access denied
SMTP Error: The following recipients failed: xxxxxxxxx.com Mailer Error: SMTP Error: The following recipients failed: xxxxxxxxxxxx.com
SMTP server error: 5.7.1 : Client host rejected: Access denied
这是代码:
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
//$mail->SMTPAuth = true; // authentication enabled
//$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = "xxxxxxxxxxxxx";
$mail->Port = "587"; // or 587
$mail->IsHTML(true);
$mail->Username = "xxxxxxxxx";
$mail->Password = "xxxxxxxxxx";
$mail->SetFrom("[email protected]");
$mail->Subject = "Price Change Notification";
$mail->Body = "Test E-mail";
$mail->AddAddress("[email protected]");
if(!$mail->Send()){
echo "Mailer Error: " . $mail->ErrorInfo;
}
else{
echo "Message has been sent";
}
答案1
如果不知道您正在运行哪个邮件服务器,就很难具体说明,但许多人会锁定他们的邮件服务器,只允许您从批准的 IP 地址发送邮件。这里的情况似乎就是这样。您需要与管理邮件服务器的人员交谈,让他们允许 Web 服务器发送邮件。
答案2
如果您不在黑名单中,请尝试查找:
答案3
以防万一有人深入研究上述问题,请确保您的用户名与SetFrom
地址相同。某些邮件服务器配置不允许不同的发件人地址。另一个选项是简单地向实际邮件帐户添加邮件别名。