我想使用最新的PHP邮件程序 https://github.com/PHPMailer/PHPMailer图书馆与require_once()
而不是与 Composer 搞混。我想要一个简单的纯 xcopy 部署。
这就是我正在尝试做的事情:
require_once("src/PHPMailer.php");
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = $smtpUsername;
$mail->Password = $smtpPassword;
$mail->setFrom($emailFrom, $emailFromName);
$mail->addAddress($emailTo, $emailToName);
$mail->Subject = 'PHPMailer GMail SMTP test';
$mail->msgHTML("test body");
$mail->AltBody = 'HTML messaging not supported';
if(!$mail->send()){
echo "Mailer Error: " . $mail->ErrorInfo;
}else{
echo "Message sent!";
}
我收到错误消息:Fatal error: Class PHPMailer not found in [....]\EmailTester.php on line 21
第21行是这样的:$mail = new PHPMailer;
这条线只是我的猜测:require_once("src/PHPMailer.php");
- 显然我需要包含一些文件或多个文件,但我不知道是哪个。
我的工作地点是github 上的 gmail 示例 https://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail.phps它也不包含在 zip 下载中。但我可以在 github 中导航到它。在该示例文件中,它的开头如下:
use PHPMailer\PHPMailer\PHPMailer;
require '../vendor/autoload.php';
$mail = new PHPMailer;
我看没有autoload.php
文件在 zip 下载中,经过谷歌搜索后我发现这意味着使用 Composer。但必须有某种方法可以简单地执行包含并获取我需要的文件。
关于这个 PHPMailer 库,有一些事情让我困惑,也许github一般来说:
- 当我从 GitHub 下载 PHP Mailer 时,为什么下载的 zip 文件中没有包含这么多列出的文件和文件夹?
- 他们为什么引用
autoload.php
zip 下载中不存在哪个?
- 显然我不明白关于github的一些事情,但是为什么不提供一个工作代码示例而不是引用下载中不存在的依赖项,迫使人们在其他地方找到它并希望他们能够弄清楚如何回来并插入它正确吗?
- 在这个 YouTube 视频中,标题为使用 PHP 和 Gmail 发送电子邮件 https://www.youtube.com/watch?v=U13smZvdArI,他从同一个地方下载了我下载的同一个 zip,但他的 zip 包含不同的文件,包括
PHPMailerAutoload.php
。为什么我得到的文件与他得到的文件完全不同?该视频发布于 2017 年 3 月 4 日——那么,不到一年前——从那时起它真的发生了如此大的变化吗?
总结:如何让 PHPMailer 在没有外部依赖项和安装(例如Composer,然后使用require_once()
得到我需要的东西?