#php #email #smtp #phpmailer
Вопрос:
Попытка отправить почту с помощью 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 PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
use PHPMailerPHPMailerSMTP;
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}";
}
Комментарии:
1. Он точно скопирован/вставлен из примера PHPMailer, за исключением той части, которую вы пропустили, поэтому он ломается. Добавьте
use
выписки обратно. Вам не нужны этиrequire
инструкции для отдельных классов, если вы используете composer. В файле readme описано, как загрузить PHPMailer как с композитором, так и без него.
Ответ №1:
Вам нужно указать название класса. Используйте либо use
утверждение:
use PHPMailerPHPMailerPHPMailer;
Или просто полностью квалифицируйте его:
$a = new PHPMailerPHPMailerPHPMailer();
Я бы рекомендовал эту use
версию, потому что в противном случае вам придется несколько раз писать полную версию.
Вам также придется повторить это с SMTP