千家信息网

如何配置ECMall支持SSL连接邮件服务器

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"如何配置ECMall支持SSL连接邮件服务器"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2026年11月02日如何配置ECMall支持SSL连接邮件服务器

本篇内容介绍了"如何配置ECMall支持SSL连接邮件服务器"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

首先,主要是ecmall使用的phpmailer版本太低,不支持加密连接。

然后,得对相应代码做一定调整。

1. 覆盖phpmailer

复制代码 代码如下:

http://cywl.jb51.net:81/201405/yuanma/ecmall_phpmailer_lib(jb51.net).zip

2. 改造lib

涉及到两个lib:mail.lib.php 、mail_quequ.lib.php

在这两个类的构造函数中,增加一个参数传递。如Mailer

复制代码 代码如下:

function __construct($from, $email, $protocol, $host = '', $port = '', $user = '', $pass = '', $SMTPSecure = false)//增加$SMTPSecure
{
$this->Mailer($from, $email, $protocol, $host, $port, $user, $pass, $SMTPSecure);
}

function Mailer($from, $email, $protocol, $host = '', $port = '', $user = '', $pass = '', $SMTPSecure = false)
....

MailQueue中同理。

3. 封装调用函数

global.lib.php 约300行

function &get_mailer()中增加一行:

复制代码 代码如下:

$secure = Conf::get('email_ssl');//增加这一行
$mailer = new Mailer($sender, $from, $protocol, $host, $port, $username, $password, $secure);//同时传递参数

4. 调整后台email设置界面,增加相关设置项

后台模板:setting.email_setting.html 增加一个配置项

复制代码 代码如下:


邮件服务器加密方式:

{html_radios name="email_ssl" options=$email_ssl checked=$setting.email_ssl}



同时,修改邮件测试的参数传递

复制代码 代码如下:


然后还需要修改setting.app.php

复制代码 代码如下:

/**
* EMAIL 设置
*
* @author Hyber
* @return void
*/
function email_setting()
{
$model_setting = &af('settings');
$setting = $model_setting->getAll(); //载入系统设置数据
if (!IS_POST)
{
$this->assign('setting', $setting);
$this->assign('mail_type', array(
MAIL_PROTOCOL_SMTP => Lang::get('smtp'),
MAIL_PROTOCOL_LOCAL => Lang::get('email'),
));
        //增加
$this->assign('email_ssl', array(
=> Lang::get('no'),
=> 'SSL',
=> 'TLS',
));
$this->display('setting.email_setting.html');
}
else
{
$data['email_type'] = $_POST['email_type'];
$data['email_host'] = $_POST['email_host'];
$data['email_ssl'] = $_POST['email_ssl'];//增加
$data['email_port'] = $_POST['email_port'];
$data['email_addr'] = $_POST['email_addr'];
$data['email_id'] = $_POST['email_id'];
$data['email_pass'] = $_POST['email_pass'];
$data['email_test'] = $_POST['email_test'];
$model_setting->setAll($data);

$this->show_message('edit_email_setting_successed');
}
}

以及测试邮件方法。

复制代码 代码如下:

function send_test_email()
{
if (IS_POST)
{
$email_from = Conf::get('site_name');
$email_type = $_POST['email_type'];
$email_host = $_POST['email_host'];
$email_ssl = $_POST['email_ssl'];//增加
$email_port = $_POST['email_port'];
$email_addr = $_POST['email_addr'];
$email_id = $_POST['email_id'];
$email_pass = $_POST['email_pass'];
$email_test = $_POST['email_test'];
$email_subject = Lang::get('email_subjuect');
$email_content = Lang::get('email_content');

/* 使用mailer类 */
import('mailer.lib');
$mailer = new Mailer($email_from, $email_addr, $email_type, $email_host, $email_port, $email_id, $email_pass, $email_ssl);//增加
$mail_result = $mailer->send($email_test, $email_subject, $email_content, CHARSET, 1);
if ($mail_result)
{
$this->json_result('', 'mail_send_succeed');
}
else
{
$this->json_error('mail_send_failure', implode("\n", $mailer->errors));
}
}
else
{
$this->show_warning('Hacking Attempt');
}
}

tls方式没有测试过。

"如何配置ECMall支持SSL连接邮件服务器"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

代码 邮件 支持 服务器 服务 配置 一行 参数 测试 两个 内容 函数 功能 同时 后台 方式 更多 模块 知识 加密 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 厦门中拓互联网络科技有限公司 科技制造互联网公司 礼当家互联网科技 西安互联网科技公司 佩信高科技互联网 贵州叶脉互联网科技有限公司所属行业 世界互联网科技公司市值排名 广州新华互联网科技学校电竞方面 朱啸虎曾投资哪些互联网科技企业 科技赋能视角下互联网保险发展 无锡工业互联网科技有限公司 山东星卡互联网科技有限公司官网 风投北京互联网科技 互联网与数字科技关系 扫呗互联网科技有限公司 互联网硬科技公司 福州德业互联网科技 上海互联网科技园景观 瑞安市蟠桃会互联网科技有限公司 广东万易互联网科技有限公司惠州分公司 港股互联网科技股 佰商互联网科技有限公司 互联网科技公司做什么 互联网科技热点资讯 顶级互联网科技成果有哪些 畅思互联网科技 深圳无忧互联网科技 杭州披云加互联网科技有限公司 富国互联网科技002692
0