国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ECMall如何支持SSL連接郵件服務器的配置

2019-11-15 01:36:08
字體:
來源:轉載
供稿:網友
ECMall如何支持SSL連接郵件服務器的配置

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

然后,得對相應代碼做一定調整。

1. 覆蓋phpmailer

請從附件進行下載:

http://files.VEVb.com/x3d/ecmall_phpmailer_lib.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 增加一個配置項

<tr>                <th class="paddingT15">                    郵件服務器加密方式:</th>                <td class="paddingT15 wordSpacing5">                    {html_radios name="email_ssl" options=$email_ssl checked=$setting.email_ssl}                    <label class="field_notice">此功能要求您的php必須支持OpenSSL模塊, 如果您要使用此功能,請聯系您的空間商確認支持此模塊</label>                </td>            </tr>

同時,修改郵件測試的參數傳遞

<script type="text/javascript">$(function(){    $('#send_test_email').click(send_test_email);});function send_test_email(){    var email_type = $('input[name="email_type"]:checked').val();    var email_ssl = $('input[name="email_ssl"]:checked').val();//增加這一行    $.Ajax({        type:"POST",        url:"index.php",        data:'app=setting&act=send_test_email&email_type='+email_type+'&email_host='+$("#email_host").val()+'&email_port='+$("#email_port").val()+'&email_addr='+$("#email_addr").val()+'&email_id='+$("#email_id").val()+'&email_pass='+$("#email_pass").val()+'&email_test='+$("#email_test").val()+'&email_ssl='+email_ssl,        dataType:"json",        success:function(data){            if(data.done){            alert(data.msg);            }            else{                alert(data.msg);            }        },        error: function(){alert('{$lang.mail_send_failure}');}    });}</script>

然后還需要修改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(                0 => Lang::get('no'),                1  => 'SSL',                2  => '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方式沒有測試過。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建始县| 湖南省| 枣强县| 博乐市| 体育| 汾西县| 高邑县| 建昌县| 宜川县| 鄂州市| 嘉义市| 曲阜市| 中西区| 枣庄市| 农安县| 会泽县| 伊吾县| 平山县| 长阳| 资溪县| 富源县| 辉南县| 上犹县| 利川市| 广南县| 大港区| 汝州市| 夏河县| 榆树市| 托克托县| 洱源县| 吉木乃县| 宁阳县| 乐亭县| 嵩明县| 昌邑市| 平南县| 深水埗区| 澜沧| 三原县| 葵青区|