织梦dedeCMS做了表单想自动发邮件到你的邮箱

写这个文章的意义是记录,方便自己或朋友享用,当你用织梦dedeCMS做了表单后,想自动发邮件到你常用的邮件中,这样的教程网上多的很,但有部分是转载别人,没经过实践或修改的,专业和可靠性一般。下面我们把如何做到方法写在网上,让您省时、省力的完成你的做网站项目。
 
一、进入你的dedecms后台
 
点 系统,系统设置、系统基本参数、核心设置
是否启用smtp方式发送邮件:
smtp服务器:smtp.exmail.qq.com
smtp服务器端口:25
SMTP服务器的用户邮箱:web@yiyada.com
SMTP服务器的用户帐号:web@yiyada.com
SMTP服务器的用户密码:ri9wOSCxj
 
点“确定”保存。
dedecms自己添加自定义表单
 
二、创建自定义表单
 
点:核心、频道模型、自定义表单、[增加新的自定义表单]
 
dedecms创建自定义表单,这里省略,不专门介绍。
 
三、重点在这里
 
打开FTP,找到/wwwroot/plus/ diy.php
 
打开 diy.php ,搜索:
require_once DEDEINC.'/diyform.cls.php';
$diy = new diyform($diyid);
 
位置在24、25行,请看明白后替换代码:
 
原来程序自带的代码如下:
/*----------------------------
function Post(){ }
---------------------------*/
if($action == 'post')
{
    if(empty($do))
    {
        $postform = $diy->getForm(true);
        include DEDEROOT."/templets/plus/{$diy->postTemplate}";
        exit();
    }
    elseif($do == 2)
    {
        $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
        $dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);
        if(!empty($dede_fields))
        {
            if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode))
            {
                showMsg('数据校验不对,程序返回', '-1');
                exit();
            }
        }
        $diyform = $dsql->getOne("select * from ja02opLN2St_diyforms where diyid='$diyid' ");
        if(!is_array($diyform))
        {
            showmsg('自定义表单不存在', '-1');
            exit();
        }
 
        $addvar = $addvalue = '';
 
        if(!empty($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); ";
 
        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 = !empty($cfg_cmspath) ? $cfg_cmspath : '/';
                $bkmsg = '发布成功,请等待管理员处理...';
            }
            showmsg($bkmsg, $goto);
        }
    }
}
/*----------------------------
function list(){ }
---------------------------*/
 
 
 
 
把上的代码替换成下面的代码
/*----------------------------
function Post(){ }
---------------------------*/
if($action == 'post')
{
    if(empty($do))
    {
        $postform = $diy->getForm(true);
        include DEDEROOT."/templets/plus/{$diy->postTemplate}";
        exit();
    }
    elseif($do == 2)
    {
        $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
        $dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);
        if(!empty($dede_fields))
        {
            if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode))
            {
                showMsg('数据校验不对,程序返回', '-1');
                exit();
            }
        }
        $diyform = $dsql->getOne("select * from ja02opLN2St_diyforms where diyid='$diyid' ");
        if(!is_array($diyform))
        {
            showmsg('自定义表单不存在', '-1');
            exit();
        }
 
        $addvar = $addvalue = '';
 
        if(!empty($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 = "姓名:{$xingming}\r\n电话/手机:{$dianhua}\r\n邮箱:{$email}\r\n详细说明您的需求:{$xuqiu}";//$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 = !empty($cfg_cmspath) ? $cfg_cmspath : '/';
                $bkmsg = '发布成功,请等待管理员处理...';
            }
            showmsg($bkmsg, $goto);
        }
    }
}
/*----------------------------
function list(){ }
---------------------------*/
 
即可,上传完成。