Can';t从PHPMailer composer创建PHPMailer对象实例
嗨,我目前正在从事一个项目,其中有一个忘记密码系统。我决定使用PHPMailer向用户发送重置密码电子邮件,我通过Composer安装了它,现在它位于供应商文件夹中。但是,在实现示例代码后,PHP会抛出一个错误:Can';t从PHPMailer composer创建PHPMailer对象实例,php,composer-php,phpmailer,Php,Composer Php,Phpmailer,嗨,我目前正在从事一个项目,其中有一个忘记密码系统。我决定使用PHPMailer向用户发送重置密码电子邮件,我通过Composer安装了它,现在它位于供应商文件夹中。但是,在实现示例代码后,PHP会抛出一个错误: Notice: Undefined variable: mail in /opt/lampp/htdocs/capstone-admin/process/loginFunctions.php on line 98 Fatal error: Uncaught Error: Call t
Notice: Undefined variable: mail in /opt/lampp/htdocs/capstone-admin/process/loginFunctions.php on line 98
Fatal error: Uncaught Error: Call to a member function isSMTP() on null in /opt/lampp/htdocs/capstone-admin/process/loginFunctions.php:98 Stack trace: #0 {main} thrown in /opt/lampp/htdocs/capstone-admin/process/loginFunctions.php on line 98
以下是我在loginFunctions.php中的部分代码:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require __DIR__. '/../vendor/autoload.php';
$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
// More codes ......
?>
我的目录结构是:
更新
$mail=new PHPMailer()代码>发生:
假设它是正确的
供应商/autoload.php
(请参阅内联注释):
- 它读取的是
,而不是new PHPMailer
——与上面的代码片段不同new PHPMailer()
看起来也很奇怪,而$mail
是未知的。在$mail
和$mail
之间可能有一些不可见的控件字符。如果它转储了一些东西,那么很可能=
var\u dump($mail)代码>
- 试着跑步
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
// relative vs. absolute path sometimes make a difference.
require __DIR__. '/../vendor/autoload.php';
// require '../vendor/autoload.php';
try {
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
} catch (Exception $e) {
die($e->getMessage());
}
?>
@MartinZeitler对不起,我不明白你的意思。我只是跟踪了phpmailer的样本codes@Martin,那些use
语句是正确的;它们是名称空间别名,而不是文件引用。您那里的代码看起来是正确的-如果您将其缩减为仅该代码,它是否有效?我怀疑您的loginFunctions.php
文件中存在结构问题。@Synchro我尝试将其放入我的index.php中,但仍然没有发现相同的错误sadly@Synchro很明显,新的PHPMailer()
并没有按预期构造。。。在构造函数中设置断点可以解释它为什么会这样做。另外,新的PHPMailer(true)
启用异常。谢谢大家!我终于解决了它,它确实是一些特殊的隐形字符,所以我必须删除并重新键入代码!