php邮件中的SMTP连接错误

时间:2015-06-24 11:58:21

标签: php email smtp

<?php
require '/etc/PHPMailer/PHPMailerAutoload.php';

$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "my@gmail.com";
$mail->Password = "password";
$mail->SetFrom("from@gmail.com");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("to@gmail.com");
if(!$mail->Send())
{
    echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
    echo "Message has been sent";
}
?>

这是我的邮件功能代码&amp;它给了我错误

SMTP ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: No address associated with hostname

我的php.ini文件中没有extension=php_openssl.dll,但我仍然包含了这个和同样的问题

1 个答案:

答案 0 :(得分:0)

为了避免动态IP的问题(每次我ping smtp.gmail.com我看到最后一个3digit块的细微差别),你只需要使用php内置的gethostbyname()来实际读取IP -time。

 $smtp_host_ip = gethostbyname('smtp.gmail.com');

然后将其用作主机。 希望它有所帮助。