用帝国cms开发的网站站点,如何实现收到留言或者反馈自动给指定邮箱发邮件呢?
很多开发者在[系统参数设置]-[FTP/EMAIL]配置好后发现邮件并不能按照所想发送,这是为什么呢?
首先:想要实现帝国cms系统收到留言反馈后自动发送邮件,必须要有发送邮件方和接收方,并且发送方需要配置相关参数
一、帝国cms 邮件发送方相关参数配置和申请
(1)先去相关邮件服务商开通账号的SMTP邮件发送服务,这里以QQ邮箱为例(参考图),网易等其他邮箱操作大同小异
{1}进入QQ邮箱,点击设置-账户
{2}拉到页面底部开启 POP3/SMTP服务,并生成授权码用于第三方邮箱
(2)进入帝国cms后台[系统参数设置]-[FTP/EMAIL]
{1}SMTP服务器写smtp.qq.com
{2}端口写25或者465,25端口为不加密,465为SSL加密,建议用加密形式,随着时代的发展,很多邮件服务商不让用25端口了
{3}发信人地址和邮箱登陆用户名填写你自己的邮箱名
{4}邮箱登陆密码填写你刚生成的授权码,切记,不是自己邮箱的使用密码
(3)修改系统文件e/class/class.smtp.php,找到第62行,按以下要求修改并保存
注:如上一步SMTP端口填写的是25则跳过这步,填写465请修改
修改
$this->smtp_conn = fsockopen($host, # the host of the server
修改为:
$this->smtp_conn = fsockopen("ssl://".$host, # the host of the server
以上3步操作完后 邮件发送方的配置已经完毕
下面来测试下邮件是否能正常发送
(4)测试邮箱是否能正常发送
{1}在e文件夹下新建一个send_mail.php文件,输入以下代码(记得修改下面中邮件接收者的E-mail)
<?php require('class/connect.php'); require('class/db_sql.php'); $link=db_connect(); $empire=new mysqlquery(); echo "send start <br />"; include('class/SendEmail.inc.php'); $mail_test="wwwbbsxiaomicom@qq.com";//邮件接收者的E-mail $sm=EcmsToSendMail($mail_test, "邮件测试", "恭喜您,这是来自<a href="http://www.bbsxiaomi.com" target="_blank" class="infotextkey">小米技术社区</a>的邮件 www.bbsxiaomi.com,如果收到,说明您的邮件配置已经成功");//邮件接收者的E-mail, 邮件标题, 邮件正文 echo $mail_test." send over for www.bbsxiaomi.com <br />"; db_close(); $empire=null; ?>
{2}执行文件
在浏览器中输入"[网站地址]/e/send_mail.php"测试。(本地localhost127.0.0.1也可用哦)
{3}测试完并成功收到邮件后记得删除e/send_mail.php文件。
如果没有测试成功,请按照1,2,3步骤排查可能出错的地方
(5)操作邮件接收方所收的邮件内容
{1}打开/e/class/q_functions.php ,搜索printerror("AddFeedbackSuccess",$reurl,1);
{2}在其上面添加如下代码
注意:一定要把[接收邮箱]的邮件地址改成自己的接收邮箱,否则肯定收不到邮件
//--------留言反馈发送到邮箱开始 if($bid==1)//反馈ID1 ,根据自己的情况 { $sendmail=1;//1 发邮件 0不发邮件 $email=array('info@qq.com'); //接收邮箱 //多邮箱示例 //$email=array("wwwbbsxiaomicom@qq.com","wwwbbsxiaomicom@qq.com","wwwbbsxiaomicom@qq.com"); $subject="$add[title]"; $content="询盘来自小米技术社区www.bbsxiaomi.com: $add[title] 姓 名:$add[name] 邮 箱:$add[email] 电 话:$add[mycall] 公 司:$add[company] 提交时间:$saytime 提交来源: $add[source_url] 关联产品: $add[product] 提交者IP:$ip 此询盘由www.bbsxiaomi.com系统发出,请及时跟进,勿回复" ; } //发送邮件部分 if($sendmail) { @include(ECMS_PATH.'e/class/SendEmail.inc.php'); EcmsToSendMail($email,$subject,$content); } //--------留言反馈发送到邮箱结束
(6)最后再次测试留言反馈邮件自动发送是否成功
{1}打开帝国自动留言信息反馈系统
你的域名+/e/tool/feedback/?bid=1
{2}输入测试信息,并提交
{3}到邮箱查看是否有以下邮件,如果有以下邮件即为配置成功,如果没有按照以上操作步骤自查
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/courses/262995.html