SMTP 错误:无法连接到服务器:php_network_getaddresses:getaddrinfo 失败:不知道这样的主机 | PHP 邮件程序 6.5

Posted

技术标签:

【中文标题】SMTP 错误:无法连接到服务器:php_network_getaddresses:getaddrinfo 失败:不知道这样的主机 | PHP 邮件程序 6.5【英文标题】:SMTP ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: No such host is known | PHP Mailer 6.5 【发布时间】:2021-09-16 05:54:25 【问题描述】:

尝试使用 phpMailer 6.5(当前最新版本)发送邮件。大部分代码是从 PHPMailer 复制粘贴的。所以我希望不需要解释。

错误:

2021-07-05 13:21:33 SMTP ERROR: Failed to connect to server: 

php_network_getaddresses: getaddrinfo failed: No such host is known. (0)
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Message has been sent

代码

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;

require 'vendor/autoload.php';

$mail = new PHPMailer();

try 
    //Server settings
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
    $mail->isSMTP();                                            //Send using SMTP
    $mail->Host       = 'smtp.example.com';                     //Set the SMTP server to send through
    $mail->SMTPAuth   = true;
    $mail->Username   = 'foo@gmail.com';                     //SMTP username
    $mail->Password   = '*******';                               //SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
    $mail->Port       = 465;

    $mail->setFrom('foo@gmail.com', 'Megasoft Money');
    $mail->addAddress('foo2@gmail.com');
    $mail->addReplyTo('foo@gmail.com', 'Megasoft Money');

   
    //Content
    $mail->ishtml(true);                                  //Set email format to HTML
    $mail->Subject = 'PHP Mailer Subject';
    $mail->Body    = 'Hi, this is a test body.';

    $mail->send();
    echo 'Message has been sent';
 catch (Exception $e) 
    echo "Message could not be sent. Mailer Error: $mail->ErrorInfo";

【问题讨论】:

它完全是从 PHPMailer 示例中复制/粘贴的,除了您遗漏的部分,这就是它崩溃的原因。重新添加 use 语句。如果您使用作曲家,则不需要为单个类使用这些 require 语句。自述文件介绍了如何在有和没有作曲家的情况下加载 PHPMailer。 【参考方案1】:

您需要限定类名。使用use 语句:

use PHPMailer\PHPMailer\PHPMailer;

或者只是完全限定它:

$a = new PHPMailer\PHPMailer\PHPMailer();

我会推荐 use 版本,因为否则您最终将不得不多次编写完全合格的版本。

您还必须使用 SMTP 重复此操作

【讨论】:

以上是关于SMTP 错误:无法连接到服务器:php_network_getaddresses:getaddrinfo 失败:不知道这样的主机 | PHP 邮件程序 6.5的主要内容,如果未能解决你的问题,请参考以下文章

Lumen phpmailer:SMTP错误:无法连接到服务器:

PHPMailer:SMTP错误:10051无法连接到服务器:尝试对无法访问的网络执行套接字操作

为啥 PHPMailer 无法连接到我的 SMTP 服务器

SMTP 错误:无法连接到服务器:php_network_getaddresses:getaddrinfo 失败:不知道这样的主机 | PHP 邮件程序 6.5

fsockopen 超时,无法连接到 Office 365 SMTP

PHPMailer无法连接到SMTP主机