请原谅我的无知。
我正在尝试在 Linux 上的 PHP 5.6 下安装 PHPMailer 6.0.1。
我的 PHP 安装是远程的,我通过 FTP 管理所有网站的 PHP(我通常将软件包作为 .zip 下载到 Win 10,解压,然后将结果通过 FTP 传输到我的网站空间)。
在安装 PHPMailer 的各种方法中,Composer 是首选,但这就是我遇到困难的地方。 Composer 指令似乎都不适合这种工作方式 - 安装程序希望我“选择您想要使用的命令行 PHP”,但我本地没有 PHP ...
令人烦恼的是,我看到 PHPMailer 的composer.json 文件已安装等待使用。
但没有 PHPMailerAutoload.php (这是由 Composer 创建的?)
所以我尝试手动安装 PHPMailer。我下载、解压并通过 FTP 将生成的目录上传到我的网站空间的 PHPMailer 文件夹中。然后,我在 PHP 代码的开头和任何函数之外插入以下内容:
require_once 'PHPMailer/src/PHPMailer.php';
require_once 'PHPMailer/src/SMTP.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
使用“use”语句时出现语法错误意外的“使用”(T_USE)……
没有它们,我只能尝试实例化:
$mail = 新的 PHPMailer;
但这失败了,找不到“类‘PHPMailer’”
我做错了什么,我怎样才能做得更好?
这并不是 PHPMailer 所特有的 - 这是您使用任何使用命名空间的无数 PHP 包时需要执行的操作。 PHP 文档介绍了如何使用use
are here.
简短的版本是,你需要把namespace
and use
指令位于任何其他脚本之前,因此如果您只需颠倒命令的顺序,它应该可以工作:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require_once 'PHPMailer/src/PHPMailer.php';
require_once 'PHPMailer/src/SMTP.php';
顺便说一句,这是 PHPMailer 自述文件中的示例以及 PHPMailer 提供的所有其他示例中使用的顺序。你可能会发现升级指南也很有用。
The PHPMailerAutoload.php
文件不再存在 - 作曲家的自动加载器做得更好。 PHPMailer 自己的composer.json
文件用于解决应用程序自己的 Composer 文件的依赖关系和标记兼容性要求,也就是说,它用于告诉项目的 Composer 文件如何使用 PHPMailer – 但不是项目的 Composer 文件本身 – 您加载的每个包都会有自己的。
在没有本地 PHP 实例的情况下进行开发是一项艰苦的工作——我们可以说,在实时服务器上进行开发是“令人沮丧的”!如果您无法直接安装 PHP,请使用 Docker、VirtualBox 或完全独立的 XAMPP 之类的工具在容器或虚拟机中运行它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)