如何将 PHPMailer 与 Codeigniter 3 集成

2024-05-17

嗨,我正在尝试使用PHPMailer 库 https://github.com/PHPMailer/PHPMailer来自我的 Codeigniter 应用程序中的 GitHub。

我下载了代码并解压到我的application\library文件夹。 所以我有一个名为vendor其中包含 PHPMailer 的源代码。

现在我创建了一个名为Bizmailer_Controller.php.

<?php defined('BASEPATH') OR exit('No direct script access allowed');

/**
* 
*/
class Bizmailer_Controller extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();

        require "vendor\phpmailer\phpmailer\PHPMailerAutoload";
        $this->Bizmailer = new PHPMailer();
        //Set the required config parameters
        $this->Bizmailer->isSMTP();                                      // Set mailer to use SMTP
        $this->Bizmailer->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup SMTP servers
        $this->Bizmailer->SMTPAuth = true;                               // Enable SMTP authentication
        $this->Bizmailer->Username = '[email protected] /cdn-cgi/l/email-protection';                 // SMTP username
        $this->Bizmailer->Password = 'secret';                           // SMTP password
        $this->Bizmailer->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
        $this->Bizmailer->Port = 465;    
        //return $api;
    }
}

现在在我的控制器中我尝试像这样加载它:

$this->load->library('Bizmailer');
$mail = new Bizmailer();

我得到这个错误:

遇到错误

无法加载请求的类:Bizmailer

所以请指导我如何在 Codeigniter 中加载或集成这个库。


这是指南

1.安装PHP邮件程序

从 Github 下载最新的 PHPMailer 版本。 你可以找到该项目here https://github.com/PHPMailer/PHPMailer

Click now on "clone or download" and download it as zip - as in the image below is shown. PHP Mailer Download as ZIP

The folder in the zip is called PHPMailer-master. Unzip this in your application/third_party/ folder and rename the folder to phpmailer. You should see something like this enter image description here

2. PHP 邮件库

恕我直言,最好创建一个处理 PHPMailer 对象的库(Phpmailer_library.php) 这个库可能看起来像

class Phpmailer_library
{
    public function __construct()
    {
        log_message('Debug', 'PHPMailer class is loaded.');
    }

    public function load()
    {
        require_once(APPPATH."third_party/phpmailer/PHPMailerAutoload.php");
        $objMail = new PHPMailer;
        return $objMail;
    }
}

3. 在您的控制器、模型等之一中使用此库。

class Welcome extends CI_Controller {


    public function index()
    {
        $this->load->library("phpmailer_library");
        $objMail = $this->phpmailer_library->load();
    }
}

我认为这应该可以完成工作。 如果您有任何问题,请随时询问;)


更新2018年6月25日

由于 PHPMailer 的人删除了自动加载器,您现在有两个选择:

1.) 通过作曲家

对于那些不知道的人 - Codeigniter 支持 Composer - 你只需激活自动加载 - 你可以在 config.php 中找到它

$config['composer_autoload'] = true;

欲了解更多信息,请查看here https://www.codeigniter.com/user_guide/general/autoloader.html?highlight=composer

之后 - 运行作曲家就像

composer require phpmailer/phpmailer

你现在应该在你的application/vendor文件夹phpmailer files.

图书馆应该看起来像

class Phpmailer_library
{
    public function __construct()
    {
        log_message('Debug', 'PHPMailer class is loaded.');
    }

    public function load()
    {
        $objMail = new PHPMailer\PHPMailer\PHPMailer();
        return $objMail;
    }
}

2.) 下载

按照步骤 1 操作

图书馆应该看起来像

class Phpmailer_library
{
    public function __construct()
    {
        log_message('Debug', 'PHPMailer class is loaded.');
    }

    public function load()
    {
        require_once(APPPATH.'third_party/phpmailer/src/PHPMailer.php');
        require_once(APPPATH.'third_party/phpmailer/src/SMTP.php');

        $objMail = new PHPMailer\PHPMailer\PHPMailer();
        return $objMail;
    }
}

其他一切都应该保持不变

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 PHPMailer 与 Codeigniter 3 集成 的相关文章

  • 禁用/启用用户访问/下载,但允许 php 编辑 - 使用 chown 和 chmod

    我想 move uploaded files到某个文件夹 比方说http localhost myproject protected 并且 PHP 应该能够rm mv cp 里面的一切protected 例如 启用 禁用用户对任何文件的访问
  • PHP DBlib PDO 问题

    我正在尝试通过 php 连接到 MSSQL 服务器 但我的 pdo 连接给我带来了困难和我不太理解的错误 我在下面粘贴的代码一周前运行得很好 突然间它就停止了 没有任何人进行任何更改 我仍然可以连接到服务器并直接从命令行运行查询 但我在 p
  • Ajax 与 chrome 扩展

    我将 url 发送到 chrome 扩展中的 php 文件 并需要获得响应 但不起作用 清单 json name Get pages source version 1 0 manifest version 2 description Get
  • PHP 自定义会话处理程序问题 (PHP 7.1)

    我刚刚在计算机上从 PHP 7 0 迁移到 PHP 7 1 当前版本的 WAMP 的全新 全新安装 它似乎破坏了自定义会话处理程序中的某些内容 该处理程序应该将会话保存到数据库而不是使用文件系统 自定义处理程序类是 class db ses
  • Laravel 5 配置语言环境,不起作用

    已完成的修改 on 配置 应用程序 php locale gt env APP LOCALE en fallback locale gt en on env APP LOCALE pt 我也复制了 资源 lang en文件到 资源 lang
  • 如何接收发送到 twilio 号码的短信

    我在 twilio 创建了一个免费帐户 用于通过我的网站发送短信 注册后 我得到了一个 twilio 号码 例如 XXX XXX XXXX 我可以向手机号码发送消息 但我不知道如何使用这个 twilio 号码接收短信 请帮我解决这个问题 T
  • Zend 框架会话丢失

    我有一个注册表单 当用户注册时 它会将他重定向到他的页面 在 Firefox 和 Chrome 中一切正常 但在 Internet Explorer 中则正常 看起来保存用户信息后 会话就关闭了 并且不会将用户重定向到他的页面 我该如何解决
  • PHP正则表达式替换链接url

    我需要添加href 之前http 如果这http 不遵循href or src 以下代码部分有效 部分意味着它考虑 a href 只但不src a s i a href target blank gt 0 a str 预先感谢各位的回复 s
  • PHP 多个 Ajax 请求:第一个请求阻止第二个请求

    我在一页上有 2 个 ajax 请求 我运行了第一个请求并单独启动了第二个请求 但第二个在第一个运行后停止工作 第一次结束后继续 第一个请求需要很长时间 大约 30 60 秒 此时我需要第二个请求来显示日志第一个请求发生的情况 我尝试使用
  • 使用活动目录对 Intranet 站点上的用户进行身份验证

    我建立了一个 内联网 站点 它有自己的登录系统 用户注册为新用户 并使用其上的用户名 密码登录该站点 但是 现在我想扩展它 让 Intranet 站点使用现有的 ActiveDirectory 进行身份验证 这就是我正在寻找的 前进 当用户
  • FPM 与 apache2 无法工作(权限被拒绝)

    我正在尝试使用 apache fastcgi 和 fpm 设置一个 Debian Web 服务器 但我越来越恼火 一旦我停用 mod php 我就会收到以下错误 2014 年 5 月 22 日星期四 12 16 10 错误 客户端 xxx
  • Google Closure 编译器和 multipart/form-data 不起作用

    我正在向 google 闭包编译器 API 服务发出请求 content file get contents file js url http closure compiler appspot com compile post true p
  • 如何验证上传的文件是视频?

    我的服务器上有一些非常敏感的信息 因此安全性是一个大问题 用户需要能够上传视频 我知道允许用户上传文件会带来安全威胁 因为没有 100 的方法可以阻止他们上传非视频 但我显然可以选择服务器将保留哪些文件 我知道检查文件扩展名是不够的 检查
  • php - 重定向ajax请求[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 php wordpress 中重定向 ajax 请求 I tried header Location http redirect
  • Symfony2 - 在自定义验证器中调用 EmailValidator

    我正在创建一个自定义验证器约束来验证 联系人 类似于 John Doe 电子邮件受保护 gt 遵循Cookbook http symfony com doc current cookbook validation custom constr
  • PHP + MySQL 队列

    我需要一个充当队列的简单表 我的 MySQL 服务器限制是我不能使用 InnoDB 表 只能使用 MyISAM 客户 工人将同时工作 他们每次都需要接受不同的工作 我的想法是执行以下操作 伪代码 job lt SELECT FROM que
  • 安全地评估简单的数学

    我想知道是否有一种安全的方法来评估数学 例如 2 2 10000 12000 10000 20 2 2 40 20 23 12 无需使用eval 因为输入可以来自任何用户 我需要实现的只是整数的加法和减法 是否有任何已经存在的代码片段 或者
  • 如何在没有 SSH 和 CLI 访问生产的情况下部署 symfony 项目 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 大多数托管提供商仅具有 FTP 访问权限 是否可以 常见地进行 symfony 项目 3 x 或 4 x 的本地安装 然后通过 FTP 上
  • 访问 PHP 数组对象受保护的属性

    我正在尝试在 Symfony2 中上传多个文件 我正在尝试访问以下请求对象 但无法获取参数属性 如何将文件一一上传 我得到的错误 致命错误 无法访问第 66 行 var www File src Webmuch FileBundle Ent
  • Yii2 无效调用:设置只读属性

    我有一个Post具有多对多关系的模型Tags 在 Post 模型中定义 public function getTags return this gt hasMany Tags className id gt tag id gt viaTab

随机推荐

  • Spring Integration中的异常:如何记录但不拦截

    假设我有一个基本的 Spring 集成流程 例如
  • 当实体位于不同项目中时,为什么 Mediatr 不解析方法?

    我有一个简单的项目来尝试 Mediatr 问题 当我的处理程序的具体类位于我的 API 的同一项目中时 它就可以工作 但是 当我将该处理程序类放入不同的项目 并且 API 引用该项目 ofc 时 它不会解析注册表 我收到此错误 未找到该类型
  • 已发布的 Flutter 应用程序在启动时崩溃

    编辑 此问题的解决方案是将您的 flutter 版本升级到较新的 dev 版本 then 1 7 0 您还可以上传单独的 APK 版本 但我个人不喜欢这个选项 请确保您没有从 flutter github 开发存储库下载 错误的构建 因为那
  • Javascript循环不等待Firebase完成上传多个文件

    我正在尝试上传多个文件 然后在上传所有文件后执行一些代码 但我的循环不会等到每个上传完成 迭代文件 files is an array of local files from a
  • 使用 ProtoBuf 将数据流式传输到带有标头的日志文件

    我正在尝试将数据流式传输到微控制器上 SD 卡上的日志文件 该微控制器从某些传感器读取数据并将值存储在文件中 为了序列化数据 我将使用 NanoPB 它是 C 语言的 protobuf 实现 资源效率很高 日志文件具有以下结构 它需要写入由
  • 重叠的装载机圆

    我试图重现苹果为应用程序 活动 制作的重叠圆圈 见下图 如果您使用标准贝塞尔路径 起始 结束位置将仅在 0 到 2PI 之间产生影响 例如 如果您尝试填充 4PI 即使使用一些阴影 则无法模拟重叠加载 如何制作类似于苹果解决方案的东西来创建
  • 运行 Composer 返回:“无法打开输入文件:composer.phar”

    我是 symfony2 和阅读新手symblog http tutorial symblog co uk tutorial parts 在第三章中 在尝试使用数据装置时 我尝试了以下命令 php composer phar update 但
  • malloc 会在函数结束时自动释放内存吗?

    如果有人能帮助我完全理解以下代码之间的差异 我将非常高兴 Code 1 void f1 void int ptr1 malloc sizeof int and Code 2 void f2 void int ptr2 malloc size
  • Python/从每个包含类似字符串对象的 Pandas 数据框单元格中去除空格的有效方法

    我正在将 CSV 文件读入 DataFrame 中 我需要从所有类似字符串的单元格中删除空格 在 Python 2 7 中保持其他单元格不变 这是我正在做的事情 def remove whitespace x if isinstance x
  • Visual Studio 错误:(407:需要代理身份验证)

    我位于需要凭据的公司代理服务器后面 我一直在尝试连接到 TFS 服务器 在 tfspreview com 上 微软 Visual Studio 专业版 2012最后2个小时没有成功 每次尝试都会遇到此错误 当我启动集成浏览器时 它工作正常
  • 我应该使用平面表还是标准化数据库?

    我目前正在开发一个使用 MySQL 数据库作为后端的 Web 应用程序 在继续下一步之前 我需要知道什么更适合我的情况 简而言之 在这个应用程序中 用户将能够使用任何数字字段 他们决定 构建自己的表单 现在我将其全部存储在通过外键链接的几个
  • FFmpeg - 来自 NodeJS 的 RTMP 流,流比实时更快

    我的目标是在 Node 中渲染画布 并将该画布流式传输到 RTMP 服务器 最终是 Twitch 但现在我正在在本地 RTMP 服务器上测试 流式传输到 RTMP 的标准方式似乎是ffmpeg 所以我使用它 从 NodeJS 中作为子进程生
  • 如何在geoserver中使用WPS进程生成MBtiles?

    如何在geoserver中生成mbtile 使用 openlayers 显示 geoserver 层 例如像这样调用wms层 new OpenLayers Layer WMS Kanpur http localhost 8080 geose
  • 即使 keypreview = true,按钮也会阻止 KeyDown 事件触发

    在 VS Express 12 中重现的步骤 创建一个新的 Windows 窗体应用程序项目 添加按钮 将 Form KeyPreview 设置为 true 向表单添加 keyDown 事件 只要按钮存在于表单上 事件就不会触发 我有一个项
  • 将 gnuplot 嵌入现有 QtWidget 中

    我正在用 C 创建一个 伪 实时绘图应用程序 使用 gnuplot 作为绘图后端 我的要求之一是绘图必须位于现有窗口内 而不是有一个单独的绘图窗口 gnuplot 默认为 Gnuplot 有一个选项可以指定 Qt 小部件 ID 这似乎适合我
  • Xcode 错误 - 架构 x86_64 的未定义符号?

    我正在运行 Swift 4 和 Xcode 9 beta 我收到此错误 但我不知道如何解决它 我什至不知道这是什么意思 Undefined symbols for architecture x86 64 T0So22AVCapturePho
  • 使用 PHP 将值插入可编辑 PDF,并保持可编辑状态

    我有一个带有可编辑字段的 PDF 我希望将 HTML 表单中的值传递到此 PDF 中 我尝试过使用 FPDF 并且它有效 但是将值传递到 PDF 后 pdf 中的字段不再可编辑 另一个缺点是 在将值传递到 PDF 时 我们必须为每个字段指定
  • TypeScript 中的循环类型引用

    我是打字稿新手 正在尝试了解如何在两种类型之间设置循环引用 该参考不必是完整的代码参考 只需是接口 而是在单独的文件中定义接口 例如 假设我有两个接口 Parent 和 Child 它们是双向链接的 这样父级有子级的集合 并且每个子级都有对
  • 模板化的 typedef?

    我正在使用 libgc 一个用于 C 和 C 的垃圾收集器 为了使 STL 容器可被垃圾回收 必须使用 gc allocator 而不是写作 std vector
  • 如何将 PHPMailer 与 Codeigniter 3 集成

    嗨 我正在尝试使用PHPMailer 库 https github com PHPMailer PHPMailer来自我的 Codeigniter 应用程序中的 GitHub 我下载了代码并解压到我的application library文