找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1150|回复: 0

[分享] 织梦如何自定义表单客户提交后如何发到自己邮箱?

[复制链接]
发表于 2018-6-25 19:48:22 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
织梦网站自定义表单设置好后会提交到后台,但是很多管理员不会经常注意到信息,所以我现在给大家分享一下将自定义表单信息提交到指定邮箱:
1、首先在织梦网站后台,进入系统--系统基本参数--核心设置里面,如下图:
1.webp
将红色标注的填写为自己的邮箱帐号(同一个账号哦)

2、打开网站根目录下的plus文件夹,里面有个diy.php文件(表单提交后处理文件),打开它,在85行上下有如下代码: $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar)  VALUES (NULL, 0 $addvalue); ";这个代码就是将表单数据写入数据库,那么我们就在他下方,加上发送邮件的功能(最下方有我改得diy.php代码 UTF8的! 直接复制放进去! 改下第88行的name):

$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);//发送邮件  




3、(一般都是国内服务器!不加没什么事!)加上第二步给的代码,就可以实现管理员邮箱给自己发信,内容通过id号获取,不过美国主机是限制自己给自己发邮件的,所以在第二步代码的最后一句,要将其改下:$smtp->sendmail($cfg_smtp_usermail,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);//发送邮件,sendmail(收件人,网站名,发件人,邮件标题,邮件内容,邮件类型),将收件人重新定义一个,比如:

  1. $cfg_smtp_usermail2="xxxx@qq.com";
  2. $smtp->sendmail($cfg_smtp_usermail2,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
复制代码


这样就可以收到啦。
2.webp 3.webp



下面是我个人的测试diy.php代码
第八十八行非常重要!  你要把你表单里面的name全部放进去! 内容才可以!

  1. <?php   
  2. /**
  3. *  
  4. * 自定义表单  
  5. *  
  6. * @version        $Id: diy.php 1 15:38 2010年7月8日Z tianya nbsp;
  7. * @package        DedeCMS.Site  
  8. * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.  
  9. * @license        <a href="http://help.dedecms.com/usersguide/license.html" target="_blank">http://help.dedecms.com/usersguide/license.html</a>  
  10. * @link           <a href="http://www.dedecms.com" target="_blank">http://www.dedecms.com</a>  
  11. */  
  12. require_once(dirname(__FILE__)."/../include/common.inc.php");   
  13.   
  14. $diyid = isset($diyid) && is_numeric($diyid) ? $diyid : 0;   
  15. $action = isset($action) && in_array($action, array('post', 'list', 'view')) ? $action : 'post';   
  16. $id = isset($id) && is_numeric($id) ? $id : 0;   
  17.   
  18. if(emptyempty($diyid))   
  19. {   
  20.     showMsg('非法操作!', 'javascript:;');   
  21.     exit();   
  22. }   
  23.   
  24. require_once DEDEINC.'/diyform.cls.php';   
  25. $diy = new diyform($diyid);   
  26.   
  27. /*----------------------------
  28. function Post(){ }  
  29. ---------------------------*/  
  30. if($action == 'post')   
  31. {   
  32.     if(emptyempty($do))   
  33.     {   
  34.         $postform = $diy->getForm(true);   
  35.         include DEDEROOT."/templets/plus/{$diy->postTemplate}";   
  36.         exit();   
  37.     }   
  38.     elseif($do == 2)   
  39.     {   
  40.         $dede_fields = emptyempty($dede_fields) ? '' : trim($dede_fields);   
  41.         $dede_fieldshash = emptyempty($dede_fieldshash) ? '' : trim($dede_fieldshash);   
  42.         if(!emptyempty($dede_fields))   
  43.         {   
  44.             if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode))   
  45.             {   
  46.                 showMsg('数据校验不对,程序返回', '-1');   
  47.                 exit();   
  48.             }   
  49.         }   
  50.         $diyform = $dsql->getOne("select * from dede_diyforms where diyid='$diyid' ");   
  51.         if(!is_array($diyform))   
  52.         {   
  53.             showmsg('自定义表单不存在', '-1');   
  54.             exit();   
  55.         }   
  56.   
  57.         $addvar = $addvalue = '';   
  58.   
  59.         if(!emptyempty($dede_fields))   
  60.         {   
  61.   
  62.             $fieldarr = explode(';', $dede_fields);   
  63.             if(is_array($fieldarr))   
  64.             {   
  65.                 foreach($fieldarr as $field)   
  66.                 {   
  67.                     if($field == '') continue;   
  68.                     $fieldinfo = explode(',', $field);   
  69.                     if($fieldinfo[1] == 'textdata')   
  70.                     {   
  71.                         ${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));   
  72.                         ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});   
  73.                     }   
  74.                     else  
  75.                     {   
  76.                         ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','diy', $fieldinfo[0]);   
  77.                     }   
  78.                     $addvar .= ', `'.$fieldinfo[0].'`';   
  79.                     $addvalue .= ", '".${$fieldinfo[0]}."'";   
  80.                 }   
  81.             }   
  82.   
  83.         }   
  84.   
  85.         $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar)  VALUES (NULL, 0 $addvalue); ";   
  86. $mailtitle = "用户订单信息";//邮件标题   
  87.    
  88. $mailbody = "称呼:{$name}\r\n邮箱:{$email}\r\n电话:{$tele}\r\n手机:{$sj}\r\n地址:{$[url=http://bbs.piaoxian.net/forum-21-1.html]dz[/url]}\r\n说明:{$sm}";//$name中name是该input元素的id号   
  89.    
  90. $headers = $cfg_adminemail;//用我们刚才设置的管理员邮箱发送   
  91.    
  92. $mailtype = 'TXT';//邮件类型为文本类型   
  93.    
  94. require_once(DEDEINC.'/mail.class.php');//加载织梦的邮件库   
  95.    
  96. $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);//创建smtp服务   
  97.    
  98. $smtp->debug = false;//不起用调试   
  99.    
  100. $smtp->sendmail($cfg_smtp_usermail,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);//发送邮件   
  101.   
  102.         if($dsql->ExecuteNoneQuery($query))   
  103.         {   
  104.             $id = $dsql->GetLastID();   
  105.             if($diy->public == 2)   
  106.             {   
  107.                 //diy.php?action=view&diyid={$diy->diyid}&id=$id   
  108.                 $goto = "diy.php?action=list&diyid={$diy->diyid}";   
  109.                 $bkmsg = '发布成功,现在转向表单列表页...';   
  110.             }   
  111.             else  
  112.             {   
  113.                 $goto = !emptyempty($cfg_cmspath) ? $cfg_cmspath : '/';   
  114.                 $bkmsg = '发布成功,请等待管理员处理...';   
  115.             }   
  116.             showmsg($bkmsg, $goto);   
  117.         }   
  118.     }   
  119. }   
  120. /*----------------------------
  121. function list(){ }  
  122. ---------------------------*/  
  123. else if($action == 'list')   
  124. {   
  125.     if(emptyempty($diy->public))   
  126.     {   
  127.         showMsg('后台关闭前台浏览', 'javascript:;');   
  128.         exit();   
  129.     }   
  130.     include_once DEDEINC.'/datalistcp.class.php';   
  131.     if($diy->public == 2)   
  132.         $query = "SELECT * FROM `{$diy->table}` ORDER BY id DESC";   
  133.     else  
  134.         $query = "SELECT * FROM `{$diy->table}` WHERE ifcheck=1 ORDER BY id DESC";   
  135.   
  136.     $datalist = new DataListCP();   
  137.     $datalist->pageSize = 10;   
  138.     $datalist->SetParameter('action', 'list');   
  139.     $datalist->SetParameter('diyid', $diyid);   
  140.     $datalist->SetTemplate(DEDEINC."/../templets/plus/{$diy->listTemplate}");   
  141.     $datalist->SetSource($query);   
  142.     $fieldlist = $diy->getFieldList();   
  143.     $datalist->Display();   
  144. }   
  145. else if($action == 'view')   
  146. {   
  147.     if(emptyempty($diy->public))   
  148.     {   
  149.         showMsg('后台关闭前台浏览' , 'javascript:;');   
  150.         exit();   
  151.     }   
  152.   
  153.     if(emptyempty($id))   
  154.     {   
  155.         showMsg('非法操作!未指定id', 'javascript:;');   
  156.         exit();   
  157.     }   
  158.     if($diy->public == 2)   
  159.     {   
  160.         $query = "SELECT * FROM {$diy->table} WHERE id='$id' ";   
  161.     }   
  162.     else  
  163.     {   
  164.         $query = "SELECT * FROM {$diy->table} WHERE id='$id' AND ifcheck=1";   
  165.     }   
  166.     $row = $dsql->GetOne($query);   
  167.   
  168.     if(!is_array($row))   
  169.     {   
  170.         showmsg('你访问的记录不存在或未经审核', '-1');   
  171.         exit();   
  172.     }   
  173.   
  174.     $fieldlist = $diy->getFieldList();   
  175.     include DEDEROOT."/templets/plus/{$diy->viewTemplate}";   
  176. }  
复制代码

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-12-24 04:31 , Processed in 0.041622 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表