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
  • 变量类型:文本
  • 参数说明:收件人
  • 变量值:858265175@qq.com
  • 所属组:站点设置

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");

完成!

注意:使用QQ邮箱的时候,请务必按照 昵称+空格+<邮箱地址>形式:nickname <prefix@domain>声明From Header。否则即使删除”utf-8“,其报错依旧!

本文转自:织梦dedecms自定义表单发送邮件(支持QQ邮箱163邮箱)表单-芝麻通网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值