PHPMailer无法连接到SMTP主机

时间:2011-05-26 10:45:55

标签: php smtp phpmailer

收到以下错误:

  

SMTP - >错误:无法连接到服务器:php_network_getaddresses:getaddrinfo failed:没有这样的主机已知。 (0)   SMTP错误:无法连接到SMTP主机。发送此邮件时出现问题!

这是我的配置文件设置,因为我已按照此PHPMailer tutorial

// Configuration settings for My Site

// Email Settings
$site['from_name'] = 'Manish Dekavadiya'; // from email name
$site['from_email'] = 'manish@<my-domain>.com'; // from email address

// Just in case we need to relay to a different server,
// provide an option to use external mail server.
$site['smtp_mode'] = 'enabled'; // enabled or disabled
$site['smtp_host'] = "smtp.<my-domain>.com";
$site['smtp_port'] = 587;
$site['smtp_username'] = "manish@<my-domain>.com";
$site['smtp_password']="<password>";

并使用了mailer类和扩展类,如教程中所述:

/ ***** **** sendmail.php /

// Grab our config settings
require_once($_SERVER['DOCUMENT_ROOT'].'/config.php');

// Grab the FreakMailer class
//echo $_SERVER['DOCUMENT_ROOT'];
require_once($_SERVER['DOCUMENT_ROOT'].'/lib/MailClass.inc');

// instantiate the class
$mailer = new FreakMailer();

// Set the subject
$mailer->Subject = 'This is a test';
 $mailer->SMTPDebug = 1;
// Body
$mailer->Body = 'This is a test of my mail system!';

// Add an address to send to.
$mailer->AddAddress('manish.dekavadiya@gmail.com', 'Manish Dekavadiya');

if(!$mailer->Send())
{
    echo 'There was a problem sending this mail!';
}
else
{
    echo 'Mail sent!';
}
$mailer->ClearAddresses();
$mailer->ClearAttachments();
当我尝试在phpmailer docs @ examples / test_smtp_gmail_basic.php

中给出的示例时,

也会出现另一个错误

  

SMTP - &gt;错误:无法连接toserver:php_network_getaddresses:   getaddrinfo失败:没有这样的主机   众所周知。 (0)SMTP错误:无法   连接到SMTP主机。有一个   发送这封邮件的问题!

因此必须存在设置或配置错误。没有代码错误。

3 个答案:

答案 0 :(得分:7)

是否设置了SMTP?如果是这样,它被配置为在端口587上收听smtp..com?如果服务器没有自己设置,那么他们收听mail..com的情况并不少见。此外,尝试连接到端口25以查看是否可以将其配置为侦听默认的smtp端口。

错误消息在任何情况下都非常清楚。主机未响应您的连接尝试。原因可能是服务器和PHP中的配置错误,防火墙问题,路由问题,DNS问题等。

答案 1 :(得分:2)

希望这有助于其他人,因为我正在与同样的错误作斗争。首先我得到了。我收到一个错误,说它无法连接()。然后我打开调试并得到你提到的错误。对我有用的解决方案是将smtp..com更改为ip地址。

$mail->Host = 'smtp.whateverDomain.com';

$mail->Host = 'theIPaddress';

调试

$mail->SMTPDebug  = 1; // enables SMTP debug information (for testing)
                           // 1 = errors and messages
                           // 2 = messages only

答案 2 :(得分:2)

我前一段时间遇到过这个问题,一切都检查得很好,但问题仍然存在。重启httpd.service解决了它。