phpmailer SMTP connect()在localhost上失败

时间:2016-03-18 12:04:28

标签: php phpmailer

我在使用xampp的localhost上运行php5.6,我试图使用phpmailer发送消息,但它给了我这个错误:SMTP connect()失败了。 这是我的代码:

Stream<String> stream = ...
final DistinctCounter c = new DistinctCounter();
int count = stream.reduce(0, c::count, Integer::add);

我知道有几十个问题有相同的标题,但相信我没有一个对我有用。请帮助,我一整天都试图解决这个问题!

3 个答案:

答案 0 :(得分:0)

好的......所以我对php.ini,我的gmail帐户和我的PHP脚本进行了一些更改......然后一切正常......所以这就是我改变了:

  • 在php.ini中:我在“sendmail_from = postmaster @ localhost”前删除了分号,然后重新启动了xampp。
  • 在我的Gmail帐户中:在security settings中,我启用了“允许安全性较低的应用”
  • 最后在我的PHP脚本中:我添加了两个函数:
    • “date_default_timezone_set( 'ETC / UTC')”
    • “gethostbyname('ssl://smtp.gmail.com')”作为“$ mail-&gt;主机”的值

这是我修改过的php脚本

date_default_timezone_set('Etc/UTC');
require '../PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = gethostbyname('ssl://smtp.gmail.com');
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = "username@gmail.com";
$mail->Password = "***********";
$mail->setFrom('username@gmail.com', 'First Last');
$mail->addAddress('username@yahoo.com', 'First Last');
$mail->Subject = 'PHPMailer SMTP test';
$mail->AltBody = 'This is a plain-text message body';
if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message sent!";
}

答案 1 :(得分:0)

检查您的防病毒应用程序,在我的情况下为“ Avast Anti Virus”将其阻止。然后当我禁用它时,错误消失了。

答案 2 :(得分:-1)

您是否已进入GMail帐户并启用此功能以允许不太安全的应用访问它?如果没有,请查看:

https://support.google.com/accounts/answer/6010255?hl=en

或者,尝试将此作为您的SMTP:

SSL://smtp.googlemail.com

我发现上述内容最有用。

您也可以尝试包含该文件而不是需要它,因此请尝试更改,

require("Photo Gallery/includes/PHPMailer/PHPMailerAutoload.php");

include 'Photo Gallery/includes/PHPMailer/PHPMailerAutoload.php';

这可能有用。如果上述内容无效,请尝试将整个库移动到项目的根文件夹中。可能是您网址中导致问题的空间。