织梦网站自定义表单设置好后会提交到后台,但是很多管理员不会经常注意到信息,所以我现在给大家分享一下将自定义表单信息提交到指定邮箱:
1、首先在织梦网站后台,进入系统--系统基本参数--核心设置里面,
将红色标注的填写为自己的邮箱帐号(同一个账号哦)
2、打开网站根目录下的plus文件夹,里面有个diy.php文件(表单提交后处理文件),打开它,在85行上下有如下代码: $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, 0 $addvalue); ";这个代码就是将表单数据写入数据库,那么我们就在他下方,加上发送邮件的功能(最下方有我改得diy.php代码 UTF8的! 直接复制放进去! 改下第88行的name):
1.$mailtitle = "用户订单信息";//邮件标题
2.
3.$mailbody = "称呼:{$name}\r\n邮箱:{$email}\r\n所在城市:{$city}\r\n国家:{$guojia}\r\n电话:{$tel}\r\n类别:{$qudao}";//$name中name是该input元素的id号
4.
5.$headers = $cfg_adminemail;//用我们刚才设置的管理员邮箱发送
6.
7.$mailtype = 'TXT';//邮件类型为文本类型
8.
9.require_once(DEDEINC.'/mail.class.php');//加载织梦的邮件库
10.
11.$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);//创建smtp服务
12.
13.$smtp->debug = false;//不起用调试
14.
15.$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(收件人,网站名,发件人,邮件标题,邮件内容,邮件类型),将收件人重新定义一个,比如:
$cfg_smtp_usermail2="xxxx@qq.com";
$smtp->sendmail($cfg_smtp_usermail2,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
这样就可以收到啦。
下面是我个人的测试diy.php代码
第八十八行非常重要! 你要把你表单里面的name全部放进去! 内容才可以!
1.<?php
2./**
3. *
4. * 自定义表单
5. *
6. * @version $Id: diy.php 1 15:38 2010年7月8日Z tianya $
7. * @package DedeCMS.Site
8. * @copyright Copyright (c) 2007 - 2010, DesDev, Inc.
9. * @license http://help.dedecms.com/usersguide/license.html
10. * @link http://www.dedecms.com
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地址:{$dz}\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.}
发表评论 取消回复