致命错误:找不到类“PHPMailer”

2022-08-30 13:12:44
  • 我试过了:include_once('C:\Inetpub\wwwroot\php\PHPMailer\PHPMailerAutoload.php');

致命错误:在第 151 行的 C:\Inetpub\wwwroot\php\index.php 中找不到类“PHPMailer”

我将 放在与我的脚本相同的目录中。PHPMailerAutoload.php

有人可以帮我这个吗?


答案 1

所有的答案现在都过时了。大多数最新版本(截至2018年2月)不再具有自动加载功能,PHPMailer应按如下方式初始化:

<?php

  require("/home/site/libs/PHPMailer-master/src/PHPMailer.php");
  require("/home/site/libs/PHPMailer-master/src/SMTP.php");

    $mail = new PHPMailer\PHPMailer\PHPMailer();
    $mail->IsSMTP(); // enable SMTP

    $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
    $mail->SMTPAuth = true; // authentication enabled
    $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465; // or 587
    $mail->IsHTML(true);
    $mail->Username = "xxxxxx";
    $mail->Password = "xxxx";
    $mail->SetFrom("xxxxxx@xxxxx.com");
    $mail->Subject = "Test";
    $mail->Body = "hello";
    $mail->AddAddress("xxxxxx@xxxxx.com");

     if(!$mail->Send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
     } else {
        echo "Message has been sent";
     }
?>

答案 2

这回答了avs099上面给出的扩展,对于那些仍然有问题的人:

1.确保您已安装php_openssl.dll(否则在线查找并安装);

2.转到您的 php.ini;查找扩展名 =php_openssl.dll启用它/取消注释

3.此时转到github和downland的最新版本:6.0。

4.将主副本解压缩到更适合您的路径中(我建议与调用文件相同的目录)

现在,将此代码复制到您的 foo-mailer 中.php并使用您的 gmail stmp 身份验证进行呈现。

    require("/PHPMailer-master/src/PHPMailer.php");
    require("/PHPMailer-master/src/SMTP.php");
    require("/PHPMailer-master/src/Exception.php");


    $mail = new PHPMailer\PHPMailer\PHPMailer();
    $mail->IsSMTP(); 

    $mail->CharSet="UTF-8";
    $mail->Host = "smtp.gmail.com";
    $mail->SMTPDebug = 1; 
    $mail->Port = 465 ; //465 or 587

     $mail->SMTPSecure = 'ssl';  
    $mail->SMTPAuth = true; 
    $mail->IsHTML(true);

    //Authentication
    $mail->Username = "foo@gmail.com";
    $mail->Password = "*******";

    //Set Params
    $mail->SetFrom("foo@gmail.com");
    $mail->AddAddress("bar@gmail.com");
    $mail->Subject = "Test";
    $mail->Body = "hello";


     if(!$mail->Send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
     } else {
        echo "Message has been sent";
     }

免责声明:上述代码的原始所有者是avs099,只有我的小输入。

请注意附加的:

a) (PHPMailer\PHPMailer) 命名空间:用于名称冲突解决所必需的。

b) (require(“/PHPMailer-master/src/Exception.php”);):avs099 的代码中缺少它,因此 aProgger 遇到的问题,你需要那一行来告诉邮件类 Exception 类所在的位置。


推荐