dedecms织梦自定义表单提交后发送到指定邮箱

织梦网站自定义表单设置好后会提交到后台,但是很多管理员不会经常注意到信息,所以我现在给大家分享一下将自定义表单信息提交到指定邮箱:

首先在织梦网站后台,进入系统--系统基本参数--核心设置里面,如下图:

QQ图片20180531170306

 

QQ邮箱:

smtp服务器:ssl/smtp.qq.com

smtp服务器端口:465

用户邮箱 :35625244@qq.com

用户帐户:35625244

用户密码:填写邮箱授权码,不是邮箱登录密码

163邮箱这样配置:

smtp服务器:ssl/smtp.163.com

smtp服务器端口:465

用户邮箱 :baishitou@163.com

用户帐户:baishitou

用户密码:填写邮箱授权码,不是邮箱登录密码

126邮箱:

smtp服务器:ssl/smtp.126.com

smtp服务器端口:465

用户邮箱 :baishitou@126.com

用户帐户:baishitou

用户密码:填写邮箱授权码,不是邮箱登录密码

如果你使用163的或者126的,你需要在邮箱设置里面开启POP3/SMTP服务如下图

QQ截图20180531165709

如果用qq邮箱。也同样需要开启上面服务,在设置-帐号里面。QQ截图20180531170204

网站后台 - 系统 - 系统基本参数 - 添加新变量

变量名称:cfg_shoujianren
变量类型:文本
参数说明:收件人
变量值:35625244@qq.com
所属组:站点设置

保存。

找到并打开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);
}

QQ截图20180531170429

如果收到的信息是乱码。请把diy.php文件里面的:

$headers = "From: ".$cfg_adminemail."Reply-To: ".$cfg_adminemail;

替换成

$mailbody = mb_convert_encoding($mailbody, "GBK", "UTF-8");

完毕。

 

 

THE END