错误:找不到类'PHPMailer'

Siv*_*h D 1 phpmailer php-7.0

错误:致命错误:未捕获错误:在C:\ xampp\htdocs\php-mailer\index.php中找不到类'PHPMailer':4堆栈跟踪:在C:\ xampp\htdocs\php-中抛出#0 {main}第4行的邮件程序\ 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";
Run Code Online (Sandbox Code Playgroud)

请让我知道我在代码中犯了什么错误.

Syn*_*hro 5

这是因为你没有考虑过PHPMailer的命名空间.做以下两件事之一:

更改实例化以使用完全限定的类名(FQCN):

$mail = new PHPMailer\PHPMailer\PHPMailer();
Run Code Online (Sandbox Code Playgroud)

或者,在加载类之前,在文件顶部定义导入:

use PHPMailer\PHPMailer\PHPMailer;
Run Code Online (Sandbox Code Playgroud)

这将允许您现有的new PHPMailer线路工作.

PHPMailer提供的所有示例都使用后一种方法,故障排除指南中也对此进行了描述.

  • 为什么?他们为什么这么做?PHPMailer()会太简单吗? (2认同)