PHPMailer身份验证问题

时间:2016-02-12 17:01:09

标签: php phpmailer

我不知道我做错了什么或者发生了什么,但我对发生的事情感到困惑。我传递给pop-> Authorize的完全相同的登录信息在SMTP级别被拒绝了?

这是我的连接代码

$username = 'matt@mydomain.com';
$password = 'mypass';
$server = 'mail.mydomain.com';

$pop = new POP3();
$pop->Authorise($server, 110, 30, $username, $password, 1);


$mail = new PHPMailer;

$mail->SMTPDebug = 2;                               // Enable verbose debug output
echo "starting mailer..<br/>";
$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = $server;  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';                               // Enable SMTP authentication
$mail->Username = $username;                 // SMTP username
$mail->Password = $password;                           // SMTP password
$mail->Port = 587;                                    // TCP port to connect to

$mail->setFrom('matt@mydomain.com', 'Mailer');
$mail->addAddress('myemail@gmail.com', 'Joe User');     // Add a recipient
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

结果如下......

Server -> Client: +OK POP3 server ready <836f3c81-e565-4afd-9a31-4517bd9d6ce4@m04.internetmailserver.net> Server -> Client: +OK User:'matt@surefiretaxes.com' ok Server -> Client: +OK Password ok 

以上显示使用POP登录明确接受

2016-02-12 16:38:05 SERVER -> CLIENT: 220-a2ls11.hosting.com ESMTP Exim 4.85 #2 Fri, 12 Feb 2016 11:38:05 -0500 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail.
2016-02-12 16:38:05 CLIENT -> SERVER: EHLO mydomain.com
2016-02-12 16:38:05 SERVER -> CLIENT: 250-a2ls11.hosting.com Hello a2ls11.hosting.com [75.98.175.122] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250-AUTH PLAIN LOGIN 250-STARTTLS 250 HELP
2016-02-12 16:38:05 CLIENT -> SERVER: STARTTLS
2016-02-12 16:38:05 SERVER -> CLIENT: 220 TLS go ahead
2016-02-12 16:38:05 CLIENT -> SERVER: EHLO mydomain.com
2016-02-12 16:38:05 SERVER -> CLIENT: 250-a2ls11.hosting.com Hello a2ls11.hosting.com [75.98.175.122] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250-AUTH PLAIN LOGIN 250 HELP
2016-02-12 16:38:05 CLIENT -> SERVER: AUTH LOGIN
2016-02-12 16:38:09 SERVER -> CLIENT: 334 VXNlcm5hbWU6
2016-02-12 16:38:09 CLIENT -> SERVER: xxx
2016-02-12 16:38:09 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2016-02-12 16:38:09 CLIENT -> SERVER: yyy
2016-02-12 16:38:11 SERVER -> CLIENT: 535 Incorrect authentication data
2016-02-12 16:38:11 SMTP ERROR: Password command failed: 535 Incorrect authentication data
2016-02-12 16:38:11 SMTP Error: Could not authenticate. 2016-02-12 16:38:11 CLIENT -> SERVER: QUIT
2016-02-12 16:38:11 SERVER -> CLIENT: 221 a2ls11.hosting.com closing connection
2016-02-12 16:38:11 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Message could not be sent.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

我的意思是我做错了什么?我只是不能为我的生活理解。我甚至尝试过使用和不使用SMTPSecure。我尝试使用端口25而不是587,但端口587与我在outlook中使用的端口完全相同。我很难过。

1 个答案:

答案 0 :(得分:1)

显然问题是因为我拥有它的主机实际上不允许连接到外部SMTP服务器。疯狂的是我没有从日志中收到错误,如上所示,它的行为就像登录信息不正确一样。我通过在另一台服务器上完全上传这些信息来验证这种情况,并且工作正常。