错误:致命错误:未捕获的错误:在C:\ xampp \ htdocs \ php-mailer \ index.php:4中找不到类'PHPMailer':4堆栈跟踪:#0 {main}抛出在C:\ xampp \ htdocs中第4行的\ php-mailer \ index.php
我的PHP代码在这里:
require("src/PHPMailer.php");
require("src/Exception.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "gmail id"; // SMTP username
$mail->Password = "mypassword"; // SMTP password
$mail->From = "opensourcesivaprakash@gmail.com";
$mail->FromName = "Mailer";
$mail->AddAddress("siva.sing.sivan@gmail.com", "Josh Adams");
$mail->AddAddress("sp"); // name is optional
//$mail->AddReplyTo("opensourcesivaprakash@gmail.com", "Information");
$mail->WordWrap = 50; // set word wrap to 50 characters
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name
$mail->IsHTML(true); // set email format to HTML
$mail->Subject = "Here is the subject";
$mail->Body = "This is the HTML message body in bold!";
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
if(!$mail->Send())
{
echo "Message could not be sent.
";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
请让我知道我在代码中犯了什么错误。
答案 0 :(得分:5)
这是因为您尚未考虑PHPMailer的名称空间。请执行以下两项操作之一:
更改实例以使用完全限定的类名(FQCN):
$mail = new PHPMailer\PHPMailer\PHPMailer();
或者,在加载类之前,在文件顶部定义导入:
use PHPMailer\PHPMailer\PHPMailer;
这将允许您现有的new PHPMailer
行工作。
PHPMailer随附的所有示例均使用后一种方法,故障排除指南中也对此进行了描述。
答案 1 :(得分:1)
将文件复制到src\
文件夹中,并在代码中使用以下代码:
require "src\Exception.php";
require "src\PHPMailer.php";
require "src\SMTP.php";
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
try {
//your code
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}