phpcms 表单发有邮件

phpcms 表单发有邮件

邮件配置说明

第一步:去企业邮箱申请,开启了smtp服务器,或者使用16 3邮 箱

16 3邮 箱默认开启了smtp服务器,可直接登录phpcms后台设置smtp验证,设置163邮箱smtp验证的详细参数

在服务器默认不开通25端口的情况下 ,配置邮件发送会失败
下面是配置成功的案例
在这里插入图片描述

备注:
如果本地测试成功,服务器上测试失败,可能是服务器配置禁用fsockopen函数的原因
通过phpinfo查看disable_functions项是否有fsockopen,如果有,说明就是这个问题。
解决办法:
打开:phpcms\modules\member\classes\client.class.php,
把78行的: if(! f p = f s o c k o p e n ( fp = fsockopen( fp=fsockopen(mail[‘server’], $mail[‘port’], $errno, KaTeX parse error: Expected '}', got 'EOF' at end of input: … 改为: if(!fp = pfsockopen($mail[‘server’], $mail[‘port’], $errno, $errstr, 30)) {
即把fsockopen改为pfsockopen。

添加表单,提交自动发送邮件提醒 :

修改 phpcms\modules\formguide index.php    
    找到  
    foreach ($mails as $m) {  
            sendmail($m, L('tips'), $this->M['mailmessage']);  
     }  
    替换成  
    //       增加邮件内容附带表单详情 段落1 开始  
                                                    $f_info = $this->db->get_one(array('modelid'=>$formid, 'siteid'=>$this->siteid));  
                                                    $MailSubject = '用户提交表单['.$f_info['name'].']提醒';  
                                                    $Fields = getcache('formguide_field_'.$formid, 'model');  
                                                    $Fields['username']['name'] = '用户名';  
                                                    $Fields['datetime']['name'] = '提交时间';  
                                                    $Fields['ip']['name'] = '提交IP';  
                                                    unset($data['userid'], $data['datetime']);  
                                                    foreach($data as $k=>$v){  
                                                            $MailBody .= $Fields[$k]['name'].'        :'.$v.'<br />';  
                                                    }  
                                                    //        增加邮件内容附带表单详情 段落1 结束          
                                                    foreach ($mails as $m) {  
                                                            //        增加邮件内容附带表单详情 段落2 开始  
                                                            sendmail($m, $MailSubject, $MailBody.$this->M['mailmessage']);  
                                                            //        增加邮件内容附带表单详情 段落2 结束  
                                                    }
  • PS:有些主机商禁用fsockopen函数功能,为了防止黑客利用程序漏洞注入后使用 fsockopen 进行PHPDDOS 攻击。
    fsockopen函数与pfsockopen函数,区别在于 pfsockopen 保持 keep-alive,使得黑客无法进行 连接数攻击。

如果配置出现问题:
可以联系:1186458795

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值