没有composer如何使用PHPMailer?

2024-07-03

我想使用最新的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一般来说:

  1. 当我从 GitHub 下载 PHP Mailer 时,为什么下载的 zip 文件中没有包含这么多列出的文件和文件夹?
  1. 他们为什么引用autoload.phpzip 下载中不存在哪个?
  2. 显然我不明白关于github的一些事情,但是为什么不提供一个工作代码示例而不是引用下载中不存在的依赖项,迫使人们在其他地方找到它并希望他们能够弄清楚如何回来并插入它正确吗?
  3. 在这个 YouTube 视频中,标题为使用 PHP 和 Gmail 发送电子邮件 https://www.youtube.com/watch?v=U13smZvdArI,他从同一个地方下载了我下载的同一个 zip,但他的 zip 包含不同的文件,包括PHPMailerAutoload.php。为什么我得到的文件与他得到的文件完全不同?该视频发布于 2017 年 3 月 4 日——那么,不到一年前——从那时起它真的发生了如此大的变化吗?

总结:如何让 PHPMailer 在没有外部依赖项和安装(例如Composer,然后使用require_once()得到我需要的东西?


这是完整的工作示例(尽管您会看到一些必须定义和设置的变量):

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';

$mail = new PHPMailer;
$mail->isSMTP(); 
$mail->SMTPDebug = 2; // 0 = off (for production use) - 1 = client messages - 2 = client and server messages
$mail->Host = "smtp.gmail.com"; // use $mail->Host = gethostbyname('smtp.gmail.com'); // if your network does not support SMTP over IPv6
$mail->Port = 587; // TLS only
$mail->SMTPSecure = 'tls'; // ssl is depracated
$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->msgHTML(file_get_contents('contents.html'), __DIR__); //Read an HTML message body from an external file, convert referenced images to embedded,
$mail->AltBody = 'HTML messaging not supported';
// $mail->addAttachment('images/phpmailer_mini.png'); //Attach an image file

if(!$mail->send()){
    echo "Mailer Error: " . $mail->ErrorInfo;
}else{
    echo "Message sent!";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有composer如何使用PHPMailer? 的相关文章

  • pip 从私人 github 仓库安装wheel版本

    我已经将我的私人仓库打包成一个轮子 轮子有不同的版本 是否可以使用 pip 从命令行并通过 requests txt 文件安装特定的 Wheel 版本的存储库 此功能pip 文档中没有提到 https pip pypa io en late
  • 字体转换源

    有一个问题 您在网上看到很多免费的字体转换工具 由于这些都是免费的 我认为它们背后的技术不仅仅是绝密 专利 商业用途 我需要在我的应用程序中动态转换字体 使用 PHP 任何人都可以向我指出一些有关如何构建自己的字体转换器的资源 在哪里获取这
  • 基于 Woocommerce 中用户总购买金额的自定义购物车通知

    我正在尝试根据 Woocommerce 中的用户总购买金额显示自定义购物车通知 基于此答案代码 根据 Woocommerce 中的客户总购买金额添加百分比折扣 https stackoverflow com questions 521417
  • 如何解决phpmyadmin超时问题?

    我想要导入巨大的 at least300 mb 通过 phpMyAdmin 的 SQL 脚本 我试过了 post max size 750M upload max filesize 750M max execution time 300 m
  • 以编程方式为存储库启用 Github Pages

    有没有办法通过api启用Github页面 不请求页面构建 我的意思是最初启用该功能并指向分支 您只需将内容推送到远程 git 存储库即可 你必须区分用户页面 用户名 github io 和项目页面 用户名 github io 项目名 用户页
  • 如何在 Kubernetes dockerconfigjson 中使用 Github 包 Docker 注册表?

    我怎样才能拉docker pkg github com来自 Kubernetes 集群内的 Docker 镜像 目前 Github Docker 注册表甚至需要对来自公共 Github 存储库的包进行身份验证 创建新的 Github 个人访
  • 未找到命令 - exec() 命令中出现错误

    我从 php 文件运行这个 exec epm package 我在 error log 中收到以下错误 sh epm command not found 我在终端手动测试它工作正常 尝试输入完整路径名 exec path to epm pa
  • ASP.net 和 PHP 之间的根本区别是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 NET 和 ASP 与 PHP https stackoverflow com questions 606419 net asp vs php 是否存在速度差异 性能问题 企业选择其中一种的原因是什么
  • 如何通过 AngularJS 使用 SOAP WebService?

    好吧 我有一个 SOAP WebService 通常供 PHP 客户端使用 工作完美 通过 ajax 消费这个 php 并填充我的模板 我当前的应用程序执行以下过程Angular lt gt PHP lt gt service wsdl 我
  • 在 Codeigniter 中创建块/模块

    到目前为止 我一直很喜欢使用 CodeIgniter 创建一些简单的 Web 应用程序 实际上只是学习框架 但我无法找到创建块 模块的简单方法 我希望有一个 最近的图像 块 我可以将其放在网站上的任何页面上 而无需在每个页面的控制器中重复查
  • PHP 字符串中的 JavaScript 数组

    我正在开发一个具有数千个值的应用程序 我正在尝试用 JavaScript 创建一个动态数组 我正在使用 AJAX 来获取我的值 所以我必须从 PHP 创建一个字符串 它应该能够在 JavaScript 中从字符串转换为数组 如何在 PHP
  • 在 WooCommerce 的电子邮件和订单页面中保存和显示产品自定义数据

    我正在使用一些代码来添加自定义字段 以使我的客户能够自定义他们的产品 这是我当前的代码 Add meta fields to all products SRC https wisdmlabs com blog add custom data
  • 上传时防止空闲状态(iOS 上的 Web 应用程序)

    我正在构建一个将在移动和桌面上使用的网络应用程序 在 iOS 上进行测试后 我注意到我的手机将进入空闲状态 屏幕关闭 返回时显示锁定屏幕 即使有是一个正在上传的文件 ajax上传 有什么办法可以防止这种情况发生吗 我正在通过将应用程序作为
  • 以限制公共访问同时仍允许父类访问的方式覆盖子类中的公共方法?

    我有一个通用的 Collection 类 具有各种公共 getter 方法 要从 Collection 中获取一项 请调用 get 还有几种返回多个项目的方法 getMany getRange getAll find findAll que
  • 如何使用 Android Volley 显示/请求 JSON 对象?

    我在 Android Studio 中遇到如何请求 JSON 对象的问题 我的 Logcat 只能打印 String onResponse 而不能打印 JSONObject 值 我在 AccessActivity java 内的 try 行
  • 将 3 个具有透明度的图像组合在一起

    我正在做这个项目 我想将三张图像合并为一张 到目前为止 有效的方法是使每个图像 jpg 透明 但将它们合并成新的 png 图像后 透明度就消失了 这是代码 function CreateMyCoolOutfitBaby Outfitwidt
  • PHP 警告:模块“mcrypt”已加载

    当我使用 PHP 运行命令时 它显示一个错误 例如当我跑步时php v查看我的 PHP 版本 它显示一个错误 然后显示有关 PHP 的信息 模块 mcrypt 已加载到第 0 行的 未知 中 zied ubuntu php v PHP Wa
  • Node.js如何重现PHP MD5加密

    我正在将现有的基于 php 的网站转换为 node js 应用程序 并且我需要将这种加密方法从 php 复制到 js private static passwordSalt d2g6IOP U U VUIPU HN V URerjh0 rf
  • 何时何地打开数据库连接

    我正在努力实现发现的 mysql 类的使用here http www ricocheting com scripts php mysql wrapper php在现有脚本中 该脚本几乎总是需要与数据库交互 即使有时不需要 在这种情况下 最佳
  • PHP 使用正则表达式分解字符串

    我有一个长字符串 由一系列用单引号分隔的句子组成 Example This s sentence number 1 This s sentence number 2 请注意 该字符串的句子本身有单引号部分 这些部分已被转义 我需要使用单引号

随机推荐