Я пытаюсь использовать PHPMailer для отправки электронной почты, и я пишу PHP в cPanel через Bluehost. Ниже мой код пока. Файл находится в папке PHPMailermaster вместе с папкой src.
Код не достигает строки «new PHPMailer» (поэтому, когда я его запускаю, страница будет отображать «Достигнута контрольная точка 1», но не «Достигнут контрольный пункт 2 ").
Раньше я никогда не использовал PHP, поэтому вполне возможно, что я делаю PHP неправильно, и кажется, что почти все учебные пособия по этому поводу относятся к более старым версиям PHPMailer, поэтому все, что ядействительно надо уйти с их страницы GitHub. Мой код в основном скопирован оттуда с небольшой модификацией путей use
. Я также прокомментировал автозагрузчик, потому что у меня его нет, и я не уверен, что он делает.
<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use src\PHPMailer;
use src\SMTP;
use src\Exception;
require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';
// Load Composer's autoloader
// require 'vendor/autoload.php';
echo "Reached checkpoint 1";
// Instantiation and passing `true` enables exceptions
$mail = new PHPMailer(true);
echo "Reached checkpoint 2";
try {
//Server settings
$mail->SMTPDebug = 1; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = 'smtp.gmail.com'; // Set the SMTP server to send through
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '<my username>'; // SMTP username
$mail->Password = '<my password>'; // SMTP password
$mail->SMTPSecure = 'ssl'; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
$mail->Port = 465; // TCP port to connect to
//Recipients
$mail->setFrom('<my email>@gmail.com');
$mail->addAddress('<test email>@gmail.com'); // Add a recipient
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
Выдается следующее сообщение об ошибке (adminusername - просто заполнитель для моего имени пользователя cpanel):
Fatal error: Uncaught Error: Class 'src\PHPMailer' not found in /home1/<adminusername>/public_html/PHPMailermaster/mail.php:21 Stack trace: #0 {main} thrown in /home1/<adminusername>/public_html/PHPMailermaster/mail.php on line 21