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邮箱相关推荐

  1. 织梦DedeCMS在自定义表单里加入验证码的方法

    在很多建站需求中,需要一些额外的表单供前台用户提交.以便于收集.统计.分析及处理更多的数据.比如:在线订单.在线报名等一些常见的互动应用. 利用织梦内容管理系统(DedeCMS)自带提供的自定义表单功 ...

  2. dedecms自定义表单解决联动类型

    最近用DEDECMS完成一个自定义表单,要用到地区的三级级联,地区肯定要使用option下拉框,如果让人一个个填肯定不行,DEDECMS内置的联动类型被注释掉了,网上有解决联动类型的例子,但存在后台信 ...

  3. 织梦自定义表单地区联动类型不可用的解决办法

    dedecms织梦自定义表单地区联动类型不可用,原因是官方模板文件中注释掉了相关选项,需要修改两个文件 打开 dede/templets/diy_field_edit.htm 找到 <optio ...

  4. 企业级自定义表单引擎解决方案(十)--缓存设计2

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

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

    https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3_dg&wd=dedecms 邮箱&oq=d ...

  6. dedecms自定义表单 发送邮件

    需求: 接收用户提交的手机号 存储之后 给默认邮箱发送邮件 一 自定义表单 第一步:核心-频道模型-自定义表单-增加新的自定义表单. 第二步:"自定义表单名称"和"数据表 ...

  7. html表单输入框添加验证码,织梦Dedecms为自定义表单添加验证码功能

    使用织梦Dedecms自定义表单的时候,即使你做了字段的验证,也很有可能被人刷很多垃圾的内容,更加安全的一个方法是为自定义表单添加上验证码功能.今天我就来为大家分享一下怎样给自定义表单添加验证码! 一 ...

  8. DEDECMS自定义表单提交后的跳转链接如何修改

    这篇文章给大家分享的是有关DEDECMS自定义表单提交后的跳转链接如何修改的内容.小编觉得挺实用的,因此分享给大家做个参考.一起跟随小编过来看看吧.  dedecms自定义表单,点击提交后,默认跳转到 ...

  9. dedecms自定义表单如何添加发布时间功能

    这篇文章给大家分享的是有关dedecms自定义表单如何添加发布时间功能的内容.小编觉得挺实用的,因此分享给大家做个参考.一起跟随小编过来看看吧.  dedecms自定义表单怎么添加发布时间功能?  d ...

最新文章

  1. Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像
  2. HDU4756(次小生成树)
  3. python scrapy框架基如何实现多线程_【转】爬虫的一般方法、异步、并发与框架scrapy的效率比较...
  4. python生成10000个样本数据集_python产生随机样本数据
  5. 1.0 mysql的连接
  6. jquery :nth-child()选择器的简单应用
  7. HTML5系列(2)--ol列表的新属性
  8. 如何从SharePoint Content DB中查询List数据
  9. 数组 最大值,课堂测试
  10. C++模版类List实现
  11. 点云投影_激光点云变换到图像平面并保存成int16灰度图一帧激光点云+一张RGB图像得到彩色点云
  12. C:\Users\xx\.xxxxxx\system\tomcat\xxx\work\Catalina\localhost\ROOT(系统找不到指定文件)
  13. arm交叉编译ntpdate与服务器进行时间同步
  14. 运行supervisorctl错误提示【FATAL或BACKOFF 】Exited too quickly (process log may have details)问题总结
  15. tomcat源码解读(一)
  16. c语言 由字符串转ASCII码
  17. 使用局域网IP地址作为小程序的测试IP
  18. 100g的攻击大概是多少钱一天?高防IP防御DDOS的原理是什么?
  19. Golang 中 map 探究
  20. (优雅解决)如何安全地关闭Intel的RST(快速存储)技术

热门文章

  1. 怎样用ZBrush对模型进行渲染(二)
  2. 2023年天津农学院专升本专业课考试具体安排及准考证打印时间
  3. 节日|我和我的祖国-智链万源祝福祖国七十周年华诞
  4. resip协议栈下的TLS使用
  5. 《老路用得上的商学课》1-10章学习笔记
  6. Shiro学习(三)——关于Subject的创建
  7. JavaWeb简介、静态与动态资源
  8. 【微信小程序】理论学习笔记
  9. 9. 用两个栈实现队列
  10. 反虚拟机技术虚拟机硬件化处理过检测