使用phpmailer发送电子邮件时出错-中继不允许的SMTP错误:数据不被接受


Error in sending email using phpmailer - Relaying disallowed SMTP Error: data not accepted

我试图使用phpmailer发送电子邮件,但以下代码无法发送电子邮件,并出现此错误:

SMTP错误:DATA END命令失败:553不允许中继SMTP错误:不接受数据。Mailer错误:SMTP错误:不接受数据。

代码如下:

<?php
require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->CharSet = 'UTF-8';
                                      // Set mailer to use SMTP
$mail->Host = 'smtp.zoho.com';  // Specify main and backup server
$mail->SMTPDebug  = 1;
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'noreply@website.com';                            // SMTP username
$mail->Password = '846Support.x.1';                           // SMTP password
$mail->SMTPSecure = 'ssl';   
$mail->Port = 465;                         // Enable encryption, 'ssl' also accepted
$mail->From = $_POST['email'];
$mail->FromName = $_POST['name'];
$mail->addAddress('info@website.com');  // Add a recipient
$mail->addReplyTo($_POST['email'], $_POST['name']);
$mail->WordWrap = 50;                                 // Set word wrap to 50 characters
$mail->isHTML(true);                                  // Set email format to HTML
$body = $_POST['message'];
$body = wordwrap($body, 70, "'r'n");
$body = $body . "'r'n" . "Phone: " .$_POST['phone'];
$mail->Subject = 'Contact Form';
$mail->Body    = $body;
if(!$mail->send()) {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
    exit();
}
else
{
    echo 'success';
}
?>

我猜Zoho SMTP服务器不接受从不同于SMTP登录邮件的电子邮件发送邮件。。我变了,它马上就过去了。

-您仍然可以使用Zoho,而不需要做什么更改。-问题:中继被禁止,因为发件人地址(用户输入的)和发件人地址(您指定为管理员电子邮件)不匹配。您可以访问wp-admin/Tools/Email Log进行验证。-解决方法:将发件人地址更改为发件人地址,您仍然知道是谁在发送此电子邮件,请查看返回部分。-动手:转到/wp-content/plugins/postload-smtp/postman/postman-Mail/PostmanZendMailEngine.php,转到该文件的近端并评论此行:$senderEmail=$sender->getEmail();然后是带有Send值的地址,请参阅下面的最终结果//$senderEmail=$sender->getEmail();$senderEmail=$this->transport->getFromEmailAddress();-现在应该可以了。