天下java本站尽知

超级管理员

35605

帖子

9

回复

54

积分

楼主
发表于 2019-12-30 23:00:00 | 查看: 416 | 回复: 0

  发送短信到邮箱的原理与 《用Tasker实现收到Android手机短信自动转发到邮箱》有些类似.
  发送短信到邮箱是利用Ifttt这个服务将短信转发到邮箱中.Ifttt服务的可扩展性很强,
  步骤:1.注册Ifttt,2.创建一个Applet,3.在tasker中创建配置文件

      1. 注册Ifttt.
      2. 创建一个

Applet

       (详细步骤参考文末第一个视频)
      • a. this 选择 webhooks,并设定一个Applet event名字
      • b. that 选择 email
      • c. 打开webhooks服务设置记录下URL中的最后一个"/"后的字符串(也就是key)
    1. 在Tasker中创建配置
      Tasker步骤(可参考文末第二个视频)以接收到的短信为触发条件,创建任务添加操作JavaScriptlet后,代码处填写如下内容:

 

 1 //下面的两个变量值需要修改
 2 var key = "cKKMTg7MnZKqQPFnJK__3N";//这个是你的ifttt提供的key
 3 var event = "短信转发到邮箱";//这个是你自己设定的Applet名字
 4 //定义post方法
 5 function postHttp(url, data) {
 6   var xhr = new XMLHttpRequest();
 7   xhr.addEventListener("readystatechange", function() {
 8     if (this.readyState === 4) {
 9       //flash(this.responseText);
10       //显示返回消息,可删除本行
11     }
12   });
13   xhr.open("POST", url, false);
14   xhr.setRequestHeader("Content-Type", "application/json");
15   xhr.send(data);
16   return xhr.responseText;
17 }
18 //获取消息
19 var smsrf = global("SMSRF");
20 var smsrb = global("SMSRB").replace(/[\n\r]/g, "<br>");
21 var mmsrs = global("MMSRS");
22 var smsrt = global("SMSRT").replace(/\./, ":");
23 var smsrd = global("SMSRD");
24 //判断是短信,彩信还是无法获取短信内容
25 smsrb =
26   smsrb == "%SMSRB" ? (mmsrs == "%MMSRS" ? "无法获取短信内容" : mmsrs) : smsrb;
27 if (smsrb == "无法获取内容") {
28   flashLong(smsrb);
29 } else {
30   var url = "https://maker.ifttt.com/trigger/" + event + "/with/key/" + key;
31   var value1 = "value1",
32     value2 = "value2",
33     value3 = "value3";
34   var data = JSON.stringify({
35     value1: smsrf,
36     value2: smsrt + " " + smsrd,
37     value3: smsrb
38   });
39   var ifttt_text = unescape(postHttp(url, data));
40   var text = "Congratulations! You've fired the " + event + " event";
41   if (ifttt_text) {
42     if (ifttt_text == text) {
43       flash("短信发送成功");
44     } else {
45       flashLong("短信发送失败");
46     }
47   } else {
48     flash("短信发送失败,请检查网络");
49   }
50 }

 

代码里面只需要修改上面提到的2个变量值,最后保存配置,这样就实现了短信转发到邮箱的功能.
  需要说明的是:虽然之前的教程都是单独用Tasker或者单独用Ifttt来实现,不过实际操作下来感觉要么难以入手,要么不稳定.使用Tasker+Ifttt结合的方法比较稳定可靠.
正常上网就可以发送到邮箱,即便是gmail也可以.
  得益于Ifttt的互联网属性,除了用此方法实现发送短信到邮箱,亦可将短信转发到telegram,google keep,google calendar,trello,Evernote等等服务中
  也可以实现将特定特征的短信发送到一个服务中,将具有另一种特征的短信转发到另一个服务中而不冲突.

 

您需要登录后才可以回帖 登录 | 立即注册