gpt4 book ai didi

php - 如何将 PHPMailer 与 Codeigniter 3 集成

转载 作者:可可西里 更新时间:2023-11-01 12:30:42 25 4
gpt4 key购买 nike

您好,我正在尝试使用 PHPMailer Library来 self 的 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 = 'user@example.com'; // SMTP username
$this->Bizmailer->Password = 'secret'; // SMTP password
$this->Bizmailer->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$this->Bizmailer->Port = 465;
//return $api;
}
}

现在在我的 Controller 中,我正尝试像这样加载它:

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

我得到这个错误:

An Error Was Encountered

Unable to load the requested class: Bizmailer

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

最佳答案

这是指南

1。安装 PHP Mailer

从 Github 下载最新的 PHPMailer Build。你可以找到项目 here

现在单击“克隆或下载”并将其下载为 zip - 如下图所示。 PHP Mailer Download as ZIP

zip 中的文件夹名为 PHPMailer-master。将其解压缩到您的 application/third_party/文件夹中,并将该文件夹重命名为 phpmailer。你应该看到这样的东西 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。在您的 Controller 、模型等之一中使用此库。

class Welcome extends CI_Controller {


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

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


2018 年 6 月 25 日更新

自从 PHPMailer 人员删除了自动加载器后,您现在有两个选择:

1.) 通过 Composer

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

$config['composer_autoload'] = true;

有关更多信息,请查看 here

之后 - 像这样运行 composer

composer require phpmailer/phpmailer

现在您的 application/vendor 文件夹中应该有 phpmailer 文件。

图书馆应该是这样的

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;
}
}

其他一切都应该保持不变

关于php - 如何将 PHPMailer 与 Codeigniter 3 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44843305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com