收到以下错误:
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主机。有一个 发送这封邮件的问题!
因此必须存在设置或配置错误。没有代码错误。
答案 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解决了它。