iis+php发送邮箱,DedeCMS用PHPMailer自定义表单发送到QQ邮箱
DedeCMS自定义表单提交后发送到指定邮箱的功能需要二次开发,但目前的许多方法都是写死字段,而且站长邮箱不能批量给多个邮箱发布,用起来不太人性化。下面提供能同时给多个QQ邮箱和163邮箱的方法。
相关准备
1、邮箱设置
QQ邮箱和163邮箱都支持POP3,开启方法参考文章《DedeCMS表单提交发送到指定邮箱与前台设置》。
这里要注意的是
1)smtp服务器的用户密码是授权码而不是邮箱密码;
2)smtp服务器端口应填465,貌似25端口会出问题,没测试过。
2、第三方邮件工具
下载PHPMailer,下载地址
链接:https://pan.baidu.com/s/1a-1wXd-M4WPy8i_4SLA1mw
提取码:ytu5
把里面的四个文件放在/plus/文件夹下即可。
3、新增变量,收件人邮箱,可根据实际情况增加多个,不同的变量名即可
变量名称:cfg_shoujianren //其他的可命名为cfg_shoujianrena
变量值: 指定的收件人邮箱地址 //如:570521548@qq.com
变量类型:文本
参数说明:收件人一
所属组:站点设置
增加邮件发送
打开plus/diy.php,找到
$id = $dsql->GetLastID();
在它的前面一行加入
//邮件发送开始
$emailbody = '';
foreach($diy->getFieldList() as $field=>$fieldvalue)
{
$emailbody .= $fieldvalue[0].':'.${$field}.'
';
}
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 = 0;
//使用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_adminemail,$cfg_smtp_user);
//添加多个收件人需要新增多个系统变量,重复写下面语句即可,如下
//$mail->addAddress($cfg_shoujianren,$cfg_smtp_user);
//...
//$mail->addAddress($cfg_shoujianrenb,$cfg_smtp_user);
//添加该邮件的主题
$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.
";
echo "Cause of the error: " . $mail->ErrorInfo;
exit;
}
//邮件发送结束
其他问题
发现IIS服务器默认情况下并没有OpenSLL和Sockets,导致不能正常发送邮件,可以在根目录新建一个文件名为test.php的文件,内容如下
phpinfo();
?>
在浏览器输入:http://域名/test.php ,查找下图所示两个参数:
↑Sockets Support值为enabled
↑OpenSSL support值为enabled
如果不是这两个值,就有两种可能,没有开通或者缺失。
1、 首先检查php.ini中,下面字段是否存在
;extension=php_openssl.dll
如果存在的话去掉前面的注释符";", 如果不存在这行,那么添加extension=php_openssl.dll。
2、如果没有 php_openssl.dll ,点击下载 php_openssl.dll
下载下来有很多个php_openssl,找到你相应php版本下面的php_openssl。
3、 重启Apache或者IIS
至此,OpenSSL功能就开启了。
扩展阅读
本文地址:https://www.vi586.com/web/535.html
版权声明:原创文章,版权归重庆SEO吖七所有,欢迎分享本文,支持原创,转载请保留出处
iis+php发送邮箱,DedeCMS用PHPMailer自定义表单发送到QQ邮箱相关推荐
- 织梦DedeCMS在自定义表单里加入验证码的方法
在很多建站需求中,需要一些额外的表单供前台用户提交.以便于收集.统计.分析及处理更多的数据.比如:在线订单.在线报名等一些常见的互动应用. 利用织梦内容管理系统(DedeCMS)自带提供的自定义表单功 ...
- dedecms自定义表单解决联动类型
最近用DEDECMS完成一个自定义表单,要用到地区的三级级联,地区肯定要使用option下拉框,如果让人一个个填肯定不行,DEDECMS内置的联动类型被注释掉了,网上有解决联动类型的例子,但存在后台信 ...
- 织梦自定义表单地区联动类型不可用的解决办法
dedecms织梦自定义表单地区联动类型不可用,原因是官方模板文件中注释掉了相关选项,需要修改两个文件 打开 dede/templets/diy_field_edit.htm 找到 <optio ...
- 企业级自定义表单引擎解决方案(十)--缓存设计2
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- DedeCMS实现自定义表单提交后发送指定QQ邮箱法
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3_dg&wd=dedecms 邮箱&oq=d ...
- dedecms自定义表单 发送邮件
需求: 接收用户提交的手机号 存储之后 给默认邮箱发送邮件 一 自定义表单 第一步:核心-频道模型-自定义表单-增加新的自定义表单. 第二步:"自定义表单名称"和"数据表 ...
- html表单输入框添加验证码,织梦Dedecms为自定义表单添加验证码功能
使用织梦Dedecms自定义表单的时候,即使你做了字段的验证,也很有可能被人刷很多垃圾的内容,更加安全的一个方法是为自定义表单添加上验证码功能.今天我就来为大家分享一下怎样给自定义表单添加验证码! 一 ...
- DEDECMS自定义表单提交后的跳转链接如何修改
这篇文章给大家分享的是有关DEDECMS自定义表单提交后的跳转链接如何修改的内容.小编觉得挺实用的,因此分享给大家做个参考.一起跟随小编过来看看吧. dedecms自定义表单,点击提交后,默认跳转到 ...
- dedecms自定义表单如何添加发布时间功能
这篇文章给大家分享的是有关dedecms自定义表单如何添加发布时间功能的内容.小编觉得挺实用的,因此分享给大家做个参考.一起跟随小编过来看看吧. dedecms自定义表单怎么添加发布时间功能? d ...
最新文章
- Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像
- HDU4756(次小生成树)
- python scrapy框架基如何实现多线程_【转】爬虫的一般方法、异步、并发与框架scrapy的效率比较...
- python生成10000个样本数据集_python产生随机样本数据
- 1.0 mysql的连接
- jquery :nth-child()选择器的简单应用
- HTML5系列(2)--ol列表的新属性
- 如何从SharePoint Content DB中查询List数据
- 数组 最大值,课堂测试
- C++模版类List实现
- 点云投影_激光点云变换到图像平面并保存成int16灰度图一帧激光点云+一张RGB图像得到彩色点云
- C:\Users\xx\.xxxxxx\system\tomcat\xxx\work\Catalina\localhost\ROOT(系统找不到指定文件)
- arm交叉编译ntpdate与服务器进行时间同步
- 运行supervisorctl错误提示【FATAL或BACKOFF 】Exited too quickly (process log may have details)问题总结
- tomcat源码解读(一)
- c语言 由字符串转ASCII码
- 使用局域网IP地址作为小程序的测试IP
- 100g的攻击大概是多少钱一天?高防IP防御DDOS的原理是什么?
- Golang 中 map 探究
- (优雅解决)如何安全地关闭Intel的RST(快速存储)技术