您好,欢迎来到源码搜藏!分享精神,快乐你我!提示:担心找不到本站?在百度搜索“源码搜藏”,网址永远不丢失!
  • 首 页
  • 在线工具
  • 当前位置:首页 > 开发教程 > dede教程 >

    dede利用自动邮件发送功能实现自定义表单发送邮件

    时间:2017-08-04 13:21 来源:互联网 作者:源码搜藏 浏览:收藏 挑错 推荐 打印

    网上有不少dede cms的提交自定义表单发送邮件的功能,看上去很简单,但实际操作起来就不少问题。首先网站大部分帖子清一色其实就是一个方法,如果是支持它这个功能的主机的话,那没啥问题,但如果碰上不支持这个方法的虚拟主机(比如 万网的虚拟主机),调试

    网上有不少dede cms的提交自定义表单发送邮件的功能,看上去很简单,但实际操作起来就不少问题。首先网站大部分帖子清一色其实就是一个方法,如果是支持它这个功能的主机的话,那没啥问题,但如果碰上不支持这个方法的虚拟主机(比如 万网的虚拟主机),调试个半天都没反应。

    然后阿里云的论坛提供了不少调用fsockopen的方法,但测试了n次,依旧不行。在快要绝望的时候,在Specs' Blog的文章里发现了一个利用程序自动的mail_send.php的方法,然后结合之前的后台设置,成功实现了提交自定义表单发送对应信息给指定邮箱。

    方法如下:

    一、首先设置dede后后台

    进入dede后台,系统,系统基本参数,核心设置,配置好邮箱发信的信息.

    1、是否启用smtp方式发送邮件:是.

    2、smtp服务器: smtp.126.com (这里推荐网易邮箱,实测出现问题的概率比较小)

    3、smtp服务器端口: 25 (一般这个不需要可以去修改改变.默认为:25)

    4、SMTP服务器的用户邮箱: xxxxx@126.com (这里填写完整的邮箱地址)

    5、SMTP服务器的用户帐号: ethnicitybeta (这里填写邮箱开头的账户也就是用户名)

    7、SMTP服务器的用户密码: 123456 (密码就不用多说了)

    dede利用自动邮件发送功能实现自定义表单发送邮件

    二、修改/plus/diy.php文件(记得备份)

    首先打开 /plus/diy.php ,把下面的代码

    //邮件发送函数function sendmail($email, $mailtitle, $mailbody){global $cfg_sendmail_bysmtp, $cfg_smtp_server, $cfg_smtp_port, $cfg_smtp_usermail, $cfg_smtp_user, $cfg_smtp_password, $cfg_adminemail,$cfg_webname;if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server)){ $mailtype = 'HTML'; require_once(DEDEINC.'/mail.class.php'); $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password); $smtp->debug = false;if(!$smtp->smtp_sockopen($cfg_smtp_server)){ShowMsg('邮件发送失败,请联系管理员','-1');exit();} $smtp->sendmail($email,$cfg_webname,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);}else{@mail($email, $mailtitle, $mailbody, $headers);}}

    放到

    require_once(dirname(__FILE__)."/../include/common.inc.php");

    的下面。

    然后把

    $email = "xxx@126.com"; //这里填写要发送到的邮箱

    $mailtitle = "邮件标题";

    $mailbody = "

    类别:{$p_pname}<br />

    申请类型:{$p_pnames}<br />

    姓名:{$p_name}<br />

    电话:{$p_tel}<br />

    邮箱:{$p_mail}<br />

    城市:{$p_city}<br />

    行业:{$p_xm}<br />

    提交时间:{$p_time}<br />

    需求:{$p_info}<br />

    ";

    sendmail($email, $mailtitle, $mailbody);

    放到

    $id = $dsql->GetLastID();

    的上面,保存文件。

    其中$mailbody为邮件内容,根据你的自定义表单的id或name来修改。

    三、上传文件,提交测试

    dede利用自动邮件发送功能实现自定义表单发送邮件

    dede利用自动邮件发送功能实现自定义表单发送邮件转载http://www.codesocang.com/jiaocheng/dedecms/36494.html
    标签:网站源码