织梦dedecms自定义表单发送邮件(支持QQ邮箱163邮箱)
使用织梦官方邮件发送类库sendmail,实现自定义表单发送邮件通知管理者,支持QQ邮箱和163邮箱。
环境要求
- 主机465端口是开启和放行的
- php扩展openssl是开启的
- php扩展sockets是开启的
- 虚拟主机必须开启fsockopen函数
例如本地环境phpstudy开启这2个扩展
阿里云虚拟主机开启fsockopen函数
1、QQ邮箱 或者 163邮箱 126邮箱 开启SMTP服务,拿到授权码,根据自己的来
QQ邮箱开启SMTP服务 和 获取授权码
163邮箱开启SMTP服务和 获取授权码
126邮箱开启SMTP服务,跟163一样。
2、网站后台 - 系统 - 系统基本参数 - 核心设置
- 是否启用SMTP方式发送邮件:是
- SMTP服务器:ssl://smtp.163.com 或者 ssl://smtp.qq.com
- SMTP服务器端口:465
- SMTP服务器的用户邮箱:自己的邮箱
- SMTP服务器的用户帐号:邮箱登录名
- SMTP服务器的用户密码:填你邮箱授权码,不是邮箱登录密码
配置163邮箱的是这样
配置QQ邮箱的是这样
配置126邮箱的是这样
3、网站后台 - 系统 - 系统基本参数 - 添加新变量
- 变量名称:cfg_shoujianren
- 变量类型:文本
- 参数说明:收件人
- 变量值:[email protected]
- 所属组:站点设置
4、打开 /plus/diy.php 找到
$id = $dsql->GetLastID();
在它的下面加入:
$mailtitle = "{$diy->name}--留言通知"; $mailbody = ''; foreach($diy->getFieldList() as $field=>$fieldvalue) { $mailbody .= "{$fieldvalue[0]}:{${$field}}\r\n"; } $headers = "From: ".$cfg_adminemail."Reply-To: ".$cfg_adminemail; if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server)) { $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->debug = 0;//发送不成功把0改成1,再提交看错误信息 $smtp->sendmail($cfg_shoujianren,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype); } else { @mail($cfg_shoujianren, $mailtitle, $mailbody, $headers); }
至此自定义表单发送邮件通知管理者完成
网易企业邮乱码的解决方法
打开 /plus/diy.php 找到
$headers = "From: ".$cfg_adminemail."Reply-To: ".$cfg_adminemail;
在它下面加入一行
$mailbody = mb_convert_encoding($mailbody, "GBK", "UTF-8");
完成
本文属原创,转载请注明原文:http://www.zhimatong.com/jiaocheng/430.html
为保证教程的实用性及扩大知识面覆盖,如果您有相似问题而未解决,可联系在线客服免费技术支持。
热门主题
相关阅读
- 织梦DedeCMS手机端自动压缩保存独立图片
- 织梦DedeCMS如何调用点赞率
- 织梦dedecms通过AJAX实现PHP自动检测订单数量,并发送语音提示
- DedeCMS查询最近30分钟内提交的数据的方法
- 织梦dedecms标签tag伪静态升级版,将URL设置为id.html附伪静态规则
- 织梦问答模块PHP7报错解决方法
- dedecms织梦调用文章图片数量的标签方法
- 织梦DedeCMS删除TAG标签后百度抓取返回404状态码的解决方法
- dedecms织梦arclist判断自定义字段为空时,输出自定义内容
- 织梦后台添加了一篇文章,但是前台显示两篇一模一样的文章的解决方法
- 织梦后台文档列表数据统计错乱的解决方法
- dedecms图集的关键词保存后再编辑关键词之间隔开的逗号消失的修复方法