織夢網站自定義表單設置好后會提交到后台,但是很多管理員不會經常注意到信息,所以我現在給大家分享一下將自定義表單信息提交到指定郵箱:
1、首先在織夢網站后台,進入系統--系統基本參數--核心設置里面,如下圖:

將紅色標注的填寫為自己的郵箱帳號(同一個賬號哦)
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(收件人,網站名,發件人,郵件標題,郵件內容,郵件類型),將收件人重新定義一個,比如:
$cfg_smtp_usermail2="xxxx@qq.com";
$smtp->sendmail($cfg_smtp_usermail2,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
這樣就可以收到啦。
下面是我個人的測試diy.php代碼
第八十八行非常重要! 你要把你表單里面的name全部放進去! 內容才可以!


下面是我個人的測試diy.php代碼
第八十八行非常重要! 你要把你表單里面的name全部放進去! 內容才可以!
- <?php
- /**
- *
- * 自定義表單
- *
- * @version $Id: diy.php 1 15:38 2010年7月8日Z tianya $
- * @package DedeCMS.Site
- * @copyright Copyright (c) 2007 - 2010, DesDev, Inc.
- * @license http://help.dedecms.com/usersguide/license.html
- * @link http://www.dedecms.com
- */
- require_once(dirname(__FILE__)."/../include/common.inc.php");
- $diyid = isset($diyid) && is_numeric($diyid) ? $diyid : 0;
- $action = isset($action) && in_array($action, array('post', 'list', 'view')) ? $action : 'post';
- $id = isset($id) && is_numeric($id) ? $id : 0;
- if(emptyempty($diyid))
- {
- showMsg('非法操作!', 'javascript:;');
- exit();
- }
- require_once DEDEINC.'/diyform.cls.php';
- $diy = new diyform($diyid);
- /*----------------------------
- function Post(){ }
- ---------------------------*/
- if($action == 'post')
- {
- if(emptyempty($do))
- {
- $postform = $diy->getForm(true);
- include DEDEROOT."/templets/plus/{$diy->postTemplate}";
- exit();
- }
- elseif($do == 2)
- {
- $dede_fields = emptyempty($dede_fields) ? '' : trim($dede_fields);
- $dede_fieldshash = emptyempty($dede_fieldshash) ? '' : trim($dede_fieldshash);
- if(!emptyempty($dede_fields))
- {
- if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode))
- {
- showMsg('數據校驗不對,程序返回', '-1');
- exit();
- }
- }
- $diyform = $dsql->getOne("select * from dede_diyforms where diyid='$diyid' ");
- if(!is_array($diyform))
- {
- showmsg('自定義表單不存在', '-1');
- exit();
- }
- $addvar = $addvalue = '';
- if(!emptyempty($dede_fields))
- {
- $fieldarr = explode(';', $dede_fields);
- if(is_array($fieldarr))
- {
- foreach($fieldarr as $field)
- {
- if($field == '') continue;
- $fieldinfo = explode(',', $field);
- if($fieldinfo[1] == 'textdata')
- {
- ${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));
- ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
- }
- else
- {
- ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','diy', $fieldinfo[0]);
- }
- $addvar .= ', `'.$fieldinfo[0].'`';
- $addvalue .= ", '".${$fieldinfo[0]}."'";
- }
- }
- }
- $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, 0 $addvalue); ";
- $mailtitle = "用戶訂單信息";//郵件標題
- $mailbody = "稱呼:{$name}\r\n郵箱:{$email}\r\n電話:{$tele}\r\n手機:{$sj}\r\n地址:{$dz}\r\n說明:{$sm}";//$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);//發送郵件
- if($dsql->ExecuteNoneQuery($query))
- {
- $id = $dsql->GetLastID();
- if($diy->public == 2)
- {
- //diy.php?action=view&diyid={$diy->diyid}&id=$id
- $goto = "diy.php?action=list&diyid={$diy->diyid}";
- $bkmsg = '發布成功,現在轉向表單列表頁...';
- }
- else
- {
- $goto = !emptyempty($cfg_cmspath) ? $cfg_cmspath : '/';
- $bkmsg = '發布成功,請等待管理員處理...';
- }
- showmsg($bkmsg, $goto);
- }
- }
- }
- /*----------------------------
- function list(){ }
- ---------------------------*/
- else if($action == 'list')
- {
- if(emptyempty($diy->public))
- {
- showMsg('后台關閉前台瀏覽', 'javascript:;');
- exit();
- }
- include_once DEDEINC.'/datalistcp.class.php';
- if($diy->public == 2)
- $query = "SELECT * FROM `{$diy->table}` ORDER BY id DESC";
- else
- $query = "SELECT * FROM `{$diy->table}` WHERE ifcheck=1 ORDER BY id DESC";
- $datalist = new DataListCP();
- $datalist->pageSize = 10;
- $datalist->SetParameter('action', 'list');
- $datalist->SetParameter('diyid', $diyid);
- $datalist->SetTemplate(DEDEINC."/../templets/plus/{$diy->listTemplate}");
- $datalist->SetSource($query);
- $fieldlist = $diy->getFieldList();
- $datalist->Display();
- }
- else if($action == 'view')
- {
- if(emptyempty($diy->public))
- {
- showMsg('后台關閉前台瀏覽' , 'javascript:;');
- exit();
- }
- if(emptyempty($id))
- {
- showMsg('非法操作!未指定id', 'javascript:;');
- exit();
- }
- if($diy->public == 2)
- {
- $query = "SELECT * FROM {$diy->table} WHERE id='$id' ";
- }
- else
- {
- $query = "SELECT * FROM {$diy->table} WHERE id='$id' AND ifcheck=1";
- }
- $row = $dsql->GetOne($query);
- if(!is_array($row))
- {
- showmsg('你訪問的記錄不存在或未經審核', '-1');
- exit();
- }
- $fieldlist = $diy->getFieldList();
- include DEDEROOT."/templets/plus/{$diy->viewTemplate}";
- }