织梦cmsf表单提交到邮箱 织梦表单发送到邮箱 织梦自定义表单发邮箱
大家在做织梦做网站开发时会遇到一个问题:织梦的自定义表单是一个很鸡肋的功能,不仅在后台展示得奇丑,而且也没有提醒功能,使用起来很不方便。很多人用织梦自定义表单时,都想用户提交表单的时候可以发送到自己的邮箱里面去提醒自己。这样省了经常去织梦网站后台看最新的表单情况。
第一步:打开织梦后台,系统->核心参数 开启smtp

第二步:
修改/plus/diy.php代码。打开网站根目录下的plus文件 夹,里面有个diy.php文件(表单提交后处理文件),打开它,在85行上下有如下代码: $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, 0 $addvalue); ";这个代码就是将表单数据写入数据库,那么我们就在他下方,加上发送邮件的功能,代码如下:
$mailtitle = "用户订单信息";//邮件标题
$mailbody = "称呼:{$name}\r\n邮箱:{$email}\r\n所在城市:{$city}\r\n国家:{$guojia}\r\n电话:{$tel}\r\n类别:{$qudao}";//$name中name是该input元素的id号
$headers = $cfg_adminemail;//用我们刚才设置的管理员邮箱发送
$mailtype = 'TXT';//邮件类型为文本类型
require_once(DEDEINC.'/mail.class.php');//加载织梦的邮件库
$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);//创建smtp服务
$smtp->debug = false;//不起用调试
$smtp->sendmail($cfg_smtp_usermail,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);//发送邮件
第三步:打开qq或者其他邮箱找到设置并开启smtp
我是以新浪为例(ps:不会自行百度)

到这就完成了可以发送邮件测试了。
我测试新浪有编码问题修改如下:
$header .= "Content-Type:text/html \r\n";修改成 到这算正式完成
但新浪还是有点小问题,出现的内容还是有编码问题,但标题已经ok不影响使用(ps:你要知道什么问题可以告诉我在修正)

-----------------------------------------------------------------------------
新添加
自定义表单有2个或者2个以上发送邮件的方式 判断 $diyid 来进行发送邮件

if($diyid==1){//2个以上自定义表单写法,一个去掉if else 就行
$mailtitle = $name."--{$diy->name}";//$diy->name获取自定义表单名称
$mailbody = "称呼:{$name}\r\n邮箱:{$phone}\r\n内容:{$beizhu}";
}else{
$mailtitle = $name."--{$diy->name}";
$mailbody = "邮箱:{$eml}\r\n通用:{$tong}";
}
$headers = $cfg_adminemail;
$mailtype = 'TXT';
require_once(DEDEINC.'/mail.class.php');
$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
$smtp->debug = false;
$smtp->sendmail($cfg_smtp_usermail,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
添加安全机制验证
增加Cookies验证,在53行下面增加 if(!is_array($diyform))
//增加Cookies验证
if(isset($_COOKIE['VOTE_MEMBER_IP'])){
if($_COOKIE['VOTE_MEMBER_IP'] == $_SERVER['REMOTE_ADDR']){
ShowMsg('您已经填写过表单啦','-1');
exit();
}else{
setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');
}
}else{
setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');
}
增加 php 正则验证 对于不懂的来说在页面中增加js判断验证就可以,但对于懂行的来说有n种方法跳过,最好就是增加数据库写入之前在验证一次
搜索 $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, 0 $addvalue); ";在这个的上面添加就行
//添加php验证,其中的 $phone 和 $email 就是提交的手机号和email字段名,实际使用的时候修改验证字段为你的字段即可
//验证手机号
if(!eregi("^13[0-9]{9}|15[0-9]{9}$",$phone)){
showMsg('手机号不对,请正确填写', '-1');
exit();
}
//验证email
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z]+[0-9a-z-]+\.)+[a-z]{2,3}$",$email)) {
showMsg('请您填写正确的E-Mail 地址!', '-1');
exit();
}
收集的网址
https://9iphp.com/opensystem/dede/871.html
https://blog.csdn.net/shuanghusun/article/details/52070993
https://9iphp.com/opensystem/dede/1054.html
http://www.szlikun.cn/news/jishufenxiang/article-246.html
http://www.zuimoban.com/php/dedecms/8456.html
织梦cmsf表单提交到邮箱 织梦表单发送到邮箱 织梦自定义表单发邮箱的更多相关文章
- js表单提交,判断文本框,用户名密码是否为空,JS表单检测!
当表单提交时先触发验证的js代码,当验证表单的方法返回true时才会提交表单返回false则不提交数据<script type="text/javascript">fu ...
- HTML5:表单提交
不加CSS.JavaScrips的HTML表单提交简单代码 <!DOCTYPE html> <html lang="en"> <head> &l ...
- 关于form与表单提交操作的一切
原文链接:http://caibaojian.com/form.html 你知道,一个表单里面只要有form元素,如果没有给action加一个默认值,为空白的时候,当你刷新页面时,会弹出一个警告框提示 ...
- php开发面试题---2、php常用面试题二(表单提交方式中的get和post有什么区别)
php开发面试题---2.php常用面试题二(表单提交方式中的get和post有什么区别) 一.总结 一句话总结: 数据位置:get参数在url里面,post在主体里面 数据大小:get几kb,pos ...
- yii2表单提交CSRF验证
Yii2表单提交默认需要验证CSRF,如果CSRF验证不通过,则表单提交失败,解决方法如下: 第一种解决办法是关闭Csrf public $enableCsrfValidation = false; ...
- 如何实现织梦dedecms表单提交时发送邮箱功能【已解决】
我们通过织梦系统制作网站时,很多客户需要有在线留言功能,这时就会用到自定义表单.但是很多用户觉得经常登陆后台查看留言信息太麻烦了,于是想能否在提交留言是直接把内容发送到指定邮箱.网站经过测试终于实现了 ...
- DedeCMS实现自定义表单提交后发送指定QQ邮箱法
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3_dg&wd=dedecms 邮箱&oq=d ...
- DedeCMS实现自定义表单提交后发送指定QQ邮箱的方法
如月cruyue在做DedeCMS自定义表单发送邮箱的教程,发现大部分都是在php文件里写死固定字段内容,这样虽然也能实现自定义表单提交后发送指定邮箱,但是很不智能,如月cruyue想要一个我们自定义 ...
- golang-web框架revel一个表单提交的总结
这里要介绍好是revel框架的表单post提交的列子,主要是用于入门学习,和一些知识点的讲解: 首先: 来了解一个问题那就是重复提交表单,做过form表单提交的同学都知道,如果表单提交后不做处理,那么 ...
随机推荐
- lambda表达式笔记
前几天一位好友分享了一篇文章,其中讲到了lambda表达式,正好最近看了一些内容,就做做笔记吧... lambda表达式服务于函数式接口,如果需要一个函数式接口的对象时,就可以用lambda表达式代替 ...
- MyBatis框架的详解
一.MyBatis的介绍 在使用的时候,需要配置文件的方式告知框架需要的信息,多数会使用XML文件作为框架的配置文件. 框架都是由第三方提供的,提供的都是jar包.因此,使用框架前,必须将框架涉及的j ...
- Linux 总结篇
1. sudo -i update upgrade install 包名 (openjdk-8-jdk) autoremove 自动删除不需要的包(remove卸载) sudo apt-get 2. ...
- Verilog的各种坑
Verilog语言和软件语言不一样,有些时候理所当然的编写,也没有报语法错误,可是功能就是不对.唉,把遇到的坑都记在本篇博客吧. 1. initial begin...end里面不能有always,如 ...
- HuTool之判断上传文件的文件类型
文件类型判断-FileTypeUtil 由来 在文件上传时,有时候我们需要判断文件类型.但是又不能简单的通过扩展名来判断(防止恶意脚本等通过上传到服务器上),于是我们需要在服务端通过读取文件的首部几个 ...
- core文件问题
core文件问题 Linux系统core涉及到的问题 core文件的问题具体可以参照系统的man手册(man core) 能否生成core文件 ulimit -c 磁盘权限问题 进程权限问题 生成co ...
- c#中冒泡排序算法描述
int temp = 0; int b = 0; int[] arr = { 23, 44, 66, 76, 98, 11, 3, 99, 7 };# region该段与排序无关Console.Wri ...
- 空间数据索引RTree(R树)完全解析及Java实现
第一部分 空间数据的背景介绍 空间数据的建模 基于实体的模型(基于对象)Entity-based models (or object based) 常用的空间数据查询方式 空间数据获取的方法 R树 简 ...
- 能够提高PHP的性能的一些注意事项
1. 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.(静态类调用属性和方法,只可以调用静态属性和方法.self::方法名().self::属性名.只有实例化 ...
- html,css,js(包含简单的 ES6语法) 实现 简单的音乐盒
知识要点 videoObject.load(): 加载某个视频(音频)文件,即重新播放 videoObject.play(): 播放视频(音频)文件 videoObject.remove(): 停止播 ...