【发布时间】:2020-04-17 21:09:28
【问题描述】:
您好,我目前正在开展一个项目,其中包含忘记密码系统。我决定使用 PHPMailer 向用户发送重置密码电子邮件,并通过 Composer 安装它,它现在位于供应商文件夹中。但是,在执行示例代码后,PHP 会抛出错误:
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 ......
?>
而我的目录结构是:
更新
我尝试搜索有关错误的常见堆栈溢出问题,甚至浏览 youtube 视频,但到目前为止没有运气!任何帮助都会被卡住几天
感谢 cmets 的帮助,但不幸的是到目前为止没有运气
我提供了一个 imgur 图像,显示了之后的调试屏幕截图
$mail = new PHPMailer();发生:
【问题讨论】:
-
@MartinZeitler 对不起,我不明白你的意思。我只是按照phpmailer示例代码
-
@Martin,那些
use陈述是正确的;它们是命名空间别名,而不是文件引用。 -
那里的代码看起来是正确的——如果你把它切回only那个代码,它可以工作吗?我怀疑您的
loginFunctions.php文件存在结构性问题。 -
@Synchro 我试着把它放在我的 index.php 中但仍然没有运气,遗憾的是它仍然是同样的错误
-
@Synchro 仍然很明显,
new PHPMailer()没有按预期构造...在构造函数中设置断点可以解释为什么它会这样。此外,new PHPMailer(true)启用异常。
标签: php composer-php phpmailer