2011-05-26 199 views
6

收到以下错误:PHPMailer的无法连接到SMTP主机

SMTP -> ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: No such host is known. (0) SMTP Error: Could not connect to SMTP host. There was a problem sending this mail!

这是因为我跟了这PHPMailer tutorial

// Configuration settings for My Site 

// Email Settings 
$site['from_name'] = 'Manish Dekavadiya'; // from email name 
$site['from_email'] = '[email protected]<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'] = "[email protected]<my-domain>.com"; 
$site['smtp_password']="<password>"; 

,并使用邮件类和扩展类提到我的配置文件设置在教程如下:

/*****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('[email protected]', 'Manish Dekavadiya'); 

if(!$mailer->Send()) 
{ 
    echo 'There was a problem sending this mail!'; 
} 
else 
{ 
    echo 'Mail sent!'; 
} 
$mailer->ClearAddresses(); 
$mailer->ClearAttachments(); 

也越来越另一个错误时,我试图在PHPMailer的文档@实施例中给出的示例/ test_smtp_gmail_basic.php

SMTP -> ERROR: Failed to connect toserver: php_network_getaddresses: getaddrinfo failed: No such host is known. (0) SMTP Error: Could not connect to SMTP host. There was a problem sending this mail!

所以必须有设置或配置错误。不能有代码错误。

+0

那么,错误信息看起来很清楚。你确定'smtp.your-domain.com'存在吗?谁给了你这个信息,网络主机? – 2011-05-26 10:51:32

+0

错误正是在那里:“无法找到套接字传输”ssl“ - 你忘了配置PHP时启用它吗?” – 2011-05-26 11:12:18

+1

telnet smtp.your-domain.com 587,有没有服务响应? – 2011-05-26 11:12:55

回答

7

是否设置了SMTP?如果是这样,它被配置为在端口587上收听smtp..com?如果服务器不是由你自己设置的,他们听邮件并不罕见。另外,尝试连接到端口25,看它是否可能配置为侦听默认的smtp端口。

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

+0

谢谢。但是,与端口25相同的错误 – maniclorn 2011-05-26 11:28:11

+0

你可以从运行你的PHP应用程序的计算机ping主机吗?如果你可以,那么服务器是最新的,然后尝试telnet到您尝试连接到的SMTP端口并查看它回复的内容。 – inquam 2011-05-26 11:45:21

+0

我可以ping mail.mydomain.com,但在ping上找不到smtp.mydomain.com。telnet with mail.mydomain.com回复... 。无法在端口23上打开与主机的连接:连接失败 – maniclorn 2011-05-26 11:58:04

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 
+0

看起来像一个典型的DNS问题... – 71GA 2017-10-13 16:23:41

2

我前一阵子有这个问题,一切都签出得很好,但问题依然存在。 httpd.service的重启解决了它。

+0

谁会想到这个......这个问题解决了我的情况。谢谢 – Sam 2016-01-21 06:48:00

相关问题