PHPMailer“继续拒绝。需要正确的身份验证”

时间:2015-02-12 07:56:57

标签: php email web smtp phpmailer

我遇到了PHPMailer的问题。我希望自己发送一封电子邮件表格给我自己,当我的网站填写某个表格时(表格中包含信息),但我无法让它发挥作用。 PHP没有发送任何错误(我确保它已启用),但是使用SMTPDebug,我得到了这个:

2015-02-12 07:35:58 CLIENT -> SERVER: EHLO localhost
2015-02-12 07:35:58 CLIENT -> SERVER: MAIL FROM:
2015-02-12 07:35:58 CLIENT -> SERVER: RCPT TO:
2015-02-12 07:35:58 SMTP ERROR: RCPT TO command failed: 550 5.7.1 ... Relaying denied. Proper authentication required.
2015-02-12 07:35:58 CLIENT -> SERVER: QUIT
2015-02-12 07:35:58 SMTP Error: The following recipients failed: me@mydomain.com

以下是代码示例:

        require("PHPMailer-master/PHPMailerAutoload.php");
        $mail = new phpmailer();

        $mail->IsSMTP();
        $mail->SMTPDebug = 1;
        $mail->Host      = "smtp.server.com"; //Mod

        $mail->From      = "me@mydomain.com"; //Mod
        $mail->FromName  = "Automatic e-mail, no reply";
        $mail->AddAddress("me@mydomain.com"); //Mod

        $mail->Subject   = "A student forgot his password";
        $mail->Body      = $class.'\r\n'.$fname.' '.$lname;
        $mail->WordWrap  = 70;

        if(!$mail->Send())
            $sent = false;
        else
            $sent = true;

(一行末尾的//Mod表示我出于隐私原因修改了数据。)

现在,我已经通过评论此行了解了一些人:

mail->IsSMTP();

但是当我这样做时,我只会收到另一个错误:

  

无法实例化邮件功能

这对我来说似乎很合乎逻辑。

1 个答案:

答案 0 :(得分:1)

服务器需要有效的经过身份验证的用户,您需要添加授权凭据。当然,更改SMTP服务器中有效授权凭据的用户名和密码值。

$mail->SMTPAuth = true;
$mail->Username = "yourauthorizeduser"; // It could be your@authorized.user"
$mail->Password = "v3rys3cr3t";