6

我整个早上都在尝试谷歌,我想我现在需要 Stackoverflow!

我写了一个简单的脚本来发送邮件(从 hotmail 到 gmail),但我收到了这个错误:

SMTP -> ERROR: Failed to connect to server: 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。(10060)SMTP Connect() 失败。错误

这是代码:

<?php
require_once("../includes/phpMailer/class.phpMailer.php");
require_once("../includes/phpMailer/class.smtp.php");


$to_name = "RECEIVER NAME";
$to = "RECEIVER@gmail.com";


$subject = "Mail test at " . strftime("%T", time());

$message = "This is a test message";
$message = wordwrap($message, 70);


$from_name = "MY NAME";
$from = "MY_EMAIL@hotmail.it";


$mail = new PHPMailer();

$mail->IsSMTP();
$mail->SMTPDebug  = 2;
$mail->Host = "smtp.live.com";
$mail->Port = 25;
$mail->SMTPAuth = true;
$mail->Username = "MY USERNAME (hotmail)";
$mail->Password = "MY PASSWORD (hotmail)";


$mail->FromName = $from_name;
$mail->From = $from;
$mail->AddAddress($to, $to_name);
$mail->Subject = $subject;
$mail->Body = $message;

$result = $mail->Send();

echo $result ? 'Sent' : 'Error';

?>

另一个信息是,甚至标准的 mail() 函数都不起作用,检查 php 信息我发现了这个:

sendmail_from - 我的正确邮件(hotmail)

sendmail_path - 没有价值

SMTP - 本地主机

smtp_port - 25

谢谢!!

4

3 回答 3

5

我相信 smtp.live.com 上的端口 25 被阻止。我也无法从这里连接到 smtp.live.com:25。尝试使用端口 587 和 TLS。所以,它会是:

$mail->Port = 587;
$mail->SMTPSecure = 'tls';   
于 2013-07-16T09:49:40.177 回答
2

我找到了解决这个问题的方法,试试这个

检查您的 PHP 是否正在使用openSSL扩展...!

  1. 从已安装的 php 文件夹中编辑php.ini
  2. 搜索extension=php_openssl.dll
  3. 初始看起来像这样;extension=php_openssl.dll
  4. 去除 ';' 它看起来像这样extension=php_openssl.dll
  5. 如果找不到extension=php_openssl.dll,请添加此行extension=php_openssl.dll
  6. 然后重新启动您的 Xampp 或 LAMP 或 APACHE 服务器(取决于您使用的是哪一个)。

希望这个方法能解决你的问题...

于 2014-01-11T21:37:03.493 回答
0

您可能需要检查支持的端口。例如,我的主机通过端口 25、3535 和 80 支持 smtp。
使用端口 80 对我有用

于 2015-04-14T09:03:32.500 回答