织梦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表单提交的同学都知道,如果表单提交后不做处理,那么 ...
随机推荐
- Java开发笔记(一百二十一)AWT输入框
前面介绍了文本标签Label,该控件展示的文字是不可编辑的,若要用户在界面上输入文本,就得使用专门的编辑框控件.在AWT的控件家族当中,用作编辑框的有两种控件,分别是单行输入框TextField和多行 ...
- Python-22-并发编程
一.进程 1. 什么是进程 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed).广义定义:进程是一 ...
- hdu1016 Prime Ring Problem【素数环问题(经典dfs)】
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- backpropagation algorithm
搞卷积神经网络的时候突然发现自己不清楚神经网络怎么训练了,满脸黑线,借此机会复习一下把. 首先放一位知乎大佬的解释.https://www.zhihu.com/question/27239198?rf ...
- 转 Html转pdf的工具——wkhtmltopdf
下载地址:http://wkhtmltopdf.org/downloads.html 安装好以后需要在系统环境变量变量名为”Path”的后添加:;D:\wkhtmltopdf\bin 也就是你安装的目 ...
- RabbitMQ实战
RabbitMQ消息队列 一.Hello World 1.amqp-client客户端依赖 2.Rabbitmq类与方法 二.交换机类型 Exchange Type 1.消息轮询分发(Round Ro ...
- Linux下Java变量
一.JAVA_HOME.PATH.CLASSPATH详解 1.1.JAVA_HOME 指向jdk安装目录,该目录下有bin.lib目录.Eclipse/NetBeans/Tomcat等软件就是通过搜索 ...
- 1+X学习日志——导航栏demo
初级菜鸟的作品,各位大佬见笑了 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- 2.将多个元素设置为同一行?清除浮动有几种方式?【HTML】
1.将多个元素设置为同一行:float,inline-block 清除浮动的方式: 方法一:添加新的元素 .应用 clear:both: 方法二:父级div定义 overflow: hidden: 方 ...
- BIN文件合并烧写
可以实现将Bootloader和Application合并烧写 使用UBIN.exe工具或者J-Flash工具 UBIN工具 选择Bootloader源文件 添加Bootloader源文件 选择App ...