2019
08-24

PbootCms网站发送留言给手机的两种解决方案

项目需求:网站是有一个留言表单,当有留言的时候,以前多数是以邮件的方式来通知自己,现在有需求是留言的时候,发送一条短信给自己手机。

网站前台留言,通过短信通知网站管理员。

这里我们以PB为例子,其他的程序如织梦,帝国,PHPCMS,大概都是差不多的。


第一种解决方案:

我们使用AJQX无刷新发送表单。

我们以:haoservice.com的API为例子,例子中我加了两种,一种是短信的,一种是语音的,都可以使用。

<script>

//ajax提交留言
function submsg(obj){
  var url='{pboot:msgaction}';
  var contacts=$(obj).find("#contacts").val();
  var mobile=$(obj).find("#mobile").val();
  var content=$(obj).find("#content").val();
  var checkcode=$(obj).find("#checkcode").val();
  
  var reg = /^(1|0)[d-]+$/;   
  if (!reg.test(mobile)) {
	  alert('电话号码错误!');
	  return false;
  }
  
  $.ajax({
    type: 'POST',
    url: url,
    dataType: 'json',
    data: {
    	contacts: contacts,
    	mobile: mobile,
    	content: content,      
    	checkcode: checkcode
    },
    success: function (response, status) {
      if(response.code){
		 alert("谢谢您的反馈,我们会尽快联系您!");
		 
//短信验证码接口    		 
	var settings = {  
	"async": true,  
	"crossDomain": true,  
	"url": "http://apis.haoservice.com/sms/sendv2?mobile=手机号&tpl_id=2&content=中间的省略掉,具体的官网会给出文档e4%bf%a1&key=your_AppKey",  
	"method": "GET",  
	"headers": {}
}

$.ajax(settings).done(function (response) {  console.log(response);
});	 
//短信验证码接口    		 
		 
  //语音验证码接口         
        var settings = {
  "async": true,
  "crossDomain": true,
  "url": "这里是你的KEY ",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});  

 //语音验证码接口         
          
		 $(obj)[0].reset(); 
      }else{
    	 alert(response.data);
      }
    },
    error:function(xhr,status,error){
      alert('返回数据异常!');
    }
  });
  return false;
}
</script>



第二种解决方案:

假如API接口不提供JS文档,那么我们可以使用相关的PHP文档。

找到文件:

/apps/home/controller/MessageController.php

在发送邮件的后面添加以下代码,这个是以短信宝为例子,其他的平台也差不多。


找到这一句,sendmail($this->config(), $this->config('message_send_to'), $mail_subject, $mail_body);在这个后面添加以下内容

// 短信开始					
$statusStr = array(
"0" => "短信发送成功",
"-1" => "参数不全",
"-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
"30" => "密码错误",
"40" => "账号不存在",
"41" => "余额不足",
"42" => "帐户已过期",
"43" => "IP地址限制",
"50" => "内容含有敏感词"
);
$smsapi = "http://api.smsbao.com/";
$user = "平台账号"; //短信平台帐号
$pass = md5("你的密码"); //短信平台密码
$content="你的网站收到一条咨询信息,请注意查收";//要发送的短信内容
$mail_bodys = ',来自网站 ' . get_http_url() . ' (' . date('Y-m-d H:i:s') . ')';
$phone = "15899750475";//要发送短信的手机号码
$sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content).urlencode($mail_bodys);
$result =file_get_contents($sendurl) ;
echo $statusStr[$result];

// 短信结束				


由此就可以实现当有人在网站上留言的时候,自动发送一条通知信息到手机上。



本文》评论

留言