PHP邮件程序SMTP错误命令失败

时间:2017-05-05 09:40:41

标签: php xampp phpmailer

我在尝试设置PHP Mailer时遇到了一些麻烦。 我一直收到这个错误。我在php.ini中禁用并启用了extension = php_openssl.dll。我已经为安全性较低的应用启用了Access,启用了imap,但仍然没有。

2017-05-05 09:33:09     SERVER -> CLIENT: 220 smtp.gmail.com ESMTP v7sm1232085wme.5 - gsmtp
2017-05-05 09:33:09     CLIENT -> SERVER: EHLO Gonþalo-PC
2017-05-05 09:33:10     SERVER -> CLIENT: 501-5.5.4 HELO/EHLO argument "Gonþalo-PC" invalid, closing connection.
                                          501 5.5.4  https://support.google.com/mail/?p=helo v7sm1232085wme.5 - gsmtp
2017-05-05 09:33:10     SMTP ERROR: EHLO command failed: 501-5.5.4 HELO/EHLO argument "Gonþalo-PC" invalid, closing conn
ection.
                                          501 5.5.4  https://support.google.com/mail/?p=helo v7sm1232085wme.5 - gsmtp
2017-05-05 09:33:10     CLIENT -> SERVER: HELO Gonþalo-PC
2017-05-05 09:33:10     SERVER -> CLIENT:
2017-05-05 09:33:10     SMTP ERROR: HELO command failed:
2017-05-05 09:33:10     SMTP NOTICE: EOF caught while checking if connected
2017-05-05 09:33:10     SMTP Error: Could not connect to SMTP host.
2017-05-05 09:33:10     SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

我正在使用XAMPP V.3.2.2,PHP 7.1.2,COMPOSER 5.2。

这是我的代码

<?php

date_default_timezone_set('Etc/UTC');
require 'vendor/autoload.php';
require_once 'buscar_lembretes.php';


$lembretes = buscarLembretes();


foreach ($lembretes as $lembrete) {

    $mail = new PHPMailer;
    $mail->isSMTP();
$mail->SMTPDebug = 2;
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 587;
    $mail->SMTPSecure = 'tls';
    $mail->SMTPAuth = true;
    $mail->Username = "myemail@gmail.com";
    $mail->Password = "mypassword";
    $mail->setFrom('myemail@gmail.com', 'Lembrestes App');
    $mail->addAddress($lembrete['email'], $lembrete['email']);
    $mail->Subject = 'Lembrete';
    $mail->Body = $lembrete['descricao'];
    $mail->send();

}

由于

1 个答案:

答案 0 :(得分:1)

这是由于php.ini中的设置或用于HELO字符串的本地主机名。你所拥有的内容对SMTP无效,后者仅处理7位数据。您可以通过将Hostname属性设置为主机名称来覆盖此值,例如:

$mail->Hostname = 'myserver.example.com';

请注意,这与Host属性不同,后者是您将连接到的服务器的地址。