Dedecms 模板中心

您现在的位置: 秀站网 > 织梦大学 > 模块插件 >

DedeCMS实现自定义表单提交后发送指定QQ邮箱的方法

来源:重庆时时彩独胆技巧 发布时间:2017-07-14热度: ℃我要评论
今天秀站网分享织梦订单管理邮件提醒,留言邮件提醒,可以做到好用户互动,增强网站互动功能,提高用户体验,增加网站流量,欢迎下载。...

本文地址:http://www.helaal.com/dedecms_mk/119.html
文章摘要:DedeCMS实现自定义表单提交后发送指定QQ邮箱的方法_模块插件_织梦大学,日暖风和换马甲金蜘蛛,复刻安捷伦加油机。

做DedeCMS自定义表单发送邮箱的教程,发现大部分都是在php文件里写死固定字段内容,这样虽然也能实现自定义表单提交后发送指定邮箱,但是很不智能,想要一个我们自定义表单中有什么字段就发送什么字段的内容,这里就需要phpmailer来实现。

就拿QQ邮箱来说明,其他邮箱(163,雅虎等邮箱方法一样):

一、登陆QQ邮箱——设置——账户,找到POP3/IMAP/SMTP,开启,现在的邮箱开启POP3/SMTP都要授权码,记下你的授权码,等一下是作为密码使用的。



开启成功后是这样的:



二、登陆网站后台——系统——基本参数设置——核心设置,对比标记的内容根据自己的邮箱填写完整:


邮箱和后台都OK后,我们开始用上phpmailer。
 
PHPMailer项目地址:http://www.helaal.com/747/PHPMailer/PHPMailer 使用git命令克隆到本地,或直接在该项目页面的右下方点击“ Download ZIP ”即可获取到完整的PHPMailer代码包,再到本地解压即可。
 
PHPMailer需PHP的socket扩展支持,而PHPMailer链接qq域名邮箱时需要ssl加密方式,固php还得openssl的支持,可以查看phpinfo,如下两项均存在则可以使用,其中openssl版本号之类不用管;许多虚拟主机中的php是不支持openssl扩展的,那你可能就悲剧了。



由于我们下载下来的PHPMailer文件夹里边的文件有很多我们是用不上的,所以我们也没必要浪费这些内存。我们可以对这个文件夹瘦身,在这里我只保存 了以下的几个文件:

class.phpmailer.php、class.phpmaileroauth.php、class.pop3.php、 class.smtp.php、PHPMailerAutoload.php 

把这5个php文件放到你dedecms程序plus文件夹下(或者直接下载文件:PHPMailer文件下载)

三、最后一步,打开/plus/diy.php,找到代码(大概在第93行):
 

$id = $dsql->GetLastID();

在它的前面一行加入代码:

//邮件发送开始
$fieldlist = $diy->getFieldList();
$addvalue_ary1 = explode(',', $addvalue);
$addvalue_ary = array_filter($addvalue_ary1);
$i = 1;
foreach($fieldlist as $field=>$fielddata)
{
    $emailbody .= $fielddata[0].':'.$addvalue_ary[$i].'<br />';   
    $i ++;
}
global $cfg_smtp_server, $cfg_adminemail, $cfg_smtp_port, $cfg_smtp_usermail, $cfg_smtp_password, $cfg_webname, $cfg_basehost, $cfg_smtp_user;


//引入PHPMailer的核心文件 使用require_once包含避免出现PHPMailer类重复定义的警告
require_once("class.phpmailer.php");
require_once("class.smtp.php");
//实例化PHPMailer核心类
$mail = new PHPMailer();

//是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
$mail->SMTPDebug = 1;

//使用smtp鉴权方式发送邮件
$mail->isSMTP();

//smtp需要鉴权 这个必须是true
$mail->SMTPAuth=true;

//链接qq域名邮箱的服务器地址
$mail->Host = $cfg_smtp_server;

//设置使用ssl加密方式登录鉴权
$mail->SMTPSecure = 'ssl';

//设置ssl连接smtp服务器的远程服务器端口号,重庆时时彩独胆技巧:以前的默认是25,但是现在新的好像已经不可用了 可选465或587
$mail->Port = $cfg_smtp_port;

//设置smtp的helo消息头 这个可有可无 内容任意
// $mail->Helo = 'Hello smtp.qq.com Server';

//设置发件人的主机域 可有可无 默认为localhost 内容任意,建议使用你的域名
$mail->Hostname = $cfg_basehost;

//设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码
$mail->CharSet = 'UTF-8';

//设置发件人姓名(昵称) 任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名
$mail->FromName = $cfg_smtp_user;

//smtp登录的账号 这里填入字符串格式的qq号即可
$mail->Username = $cfg_smtp_usermail;

//smtp登录的密码 使用生成的授权码(就刚才叫你保存的最新的授权码)
$mail->Password = $cfg_smtp_password;

//设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”
$mail->From = $cfg_smtp_usermail;

//邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false
$mail->isHTML(true);

//设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大
$mail->addAddress($cfg_email,$cfg_smtp_user);

//添加多个收件人 则多次调用方法即可
// $mail->addAddress('xxx@163.com','lsgo在线通知');

//添加该邮件的主题
$mail->Subject = $diy->name;

//添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件
$mail->Body = $emailbody;

//为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称
// $mail->addAttachment('./d.jpg','mm.jpg');
//同样该方法可以多次调用 上传多个附件
// $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');

if(!$mail->send())
{
    echo "Fail to send. <p>";
    echo "Cause of the error: " . $mail->ErrorInfo;
    exit;
}
//邮件发送结束

因为启用smtp的debug进行调试,所以在提交表单的时候会有调试代码出现,我们测试成功后可以把加入到diy.php中的代码:

$mail->SMTPDebug = 1;

换为:

$mail->SMTPDebug = 0;

本文地址:http://www.helaal.com/dedecms_mk/119.html

    相关阅读

    万达国际江西时时彩 腾龙时时彩做号2.8.2版 天机时时彩软件增强版 重庆时时彩源码 时时彩软件试用免费版
    邢台时时彩qq群号 重庆时时彩v2.1.4 百家彩时时彩源码程序 江西时时彩定位胆稳赚技巧 时时彩皇恩娱乐
    重庆时时彩计划软件王 彩博士时时彩软件重庆全能王 猪八戒购买时时彩软件 时时彩推荐专家预测 重庆时时彩被黑客攻击
    凤凰时时彩平台靠谱吗 江西时时彩计划王 澳门时时彩两分钟一开 拉菲时时彩1950注册 重庆时时彩人工免费
    吉林快3个位走势图 宝利会娱乐城 吉林快三微信群 山东体育彩票11选5 香港马会唯一官方网
    黑龙江11选5专家预测 甘肃快3助手下?甘肃快3软件官方下载?甘肃快三开奖号?甘肃快3号码遗漏 中央支持海南博彩业 彩神彩票网,小米彩票官网,网上买彩票可靠吗,中国彩票网,鸿博彩票网 幸运农场计划
    河南11选5今日开奖结果走势图 福彩2017026东方6+1 360大乐透走势图 同升国际 3d千禧试机号
    甘肃快三专家推荐号码 辽宁福彩35选7 娱乐平台注册送现金 时时彩免费软件 北京11选5遗漏数据查询