分享一个自用的 Android 短信转发方案. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
YamatoRyou
V2EX    分享创造

分享一个自用的 Android 短信转发方案.

  •  2
     
  •   YamatoRyou 2022-02-09 10:09:37 +08:00 6644 次点击
    这是一个创建于 1346 天前的主题,其中的信息可能已经有所发展或是发生改变。

    须知:
    本方案需要手机有 root 权限, 并依赖 Synapse; curl 及 Tasker (MacroDroid 亦可). 向服务器发送请求由 curl 完成, 如果 Tasker 支持 POST 方法 (我还没来得及测试, Tasker 就再也不能试用了, 不过已知 MacroDroid 不支持 POST 但支持 GET) 可以不用 curl. 你可以按自己的需要魔改本方案.

    大概流程 (因为 Tasker 无法使用已卸载, 我现在改用 MacroDroid):

    1. 手机安装 MacroDroid;

    2. 新建一个宏, 触发器选择 "短信来自", 发送者选择 "任何号码";

    3. 添加一个局部变量;

    4. 添加动作:
      a) 动作 1: 添加 Shell 脚本, 发送一个 POST 请求 (由于我使用的是 Synapse, 此处我给出的是 Synapse 允许的请求方式):

      curl -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" -s -X POST -k -d '{"msgtype": "m.text", "body": "短信转发. 发送者: [sms_number]\u000a\u000a[sms_message]"}' "https://example.com:[port]/_matrix/client/r0/rooms/%21room_id:example.com/send/m.room.message" # 请求需要提供一个账号的访问 token 及目标房间 ID, 建议针对短信转发用途新建一个专用账号. # [sms_message] 及 [sms_number] 是 MacroDroid 的内置变量, 分别表示短信正文及发送者号码. # 选中 "将输出保存为字符串变量", 并选择步骤 3 新建的变量. # 选中 "完成后此案后续动作". # 这里有个大坑, 如果转发的内容需要换行, 必须使用 "\u000a" 而不是 "\n". 

      b) 动作 2: 添加 "如果条件", 在其中添加条件: "MacroDroid 特定" -> "MacroDroid 变量", 选择步骤 3 新建的变量. 运算符选择 "不包括", 值填写

      {"event_id": 
      // 用于判断服务器是否返回了 json, 因为 json 的格式固定就没用正则表达式, 反正无脑判断前几个字符就足够了. 

      c) 动作 2-1: 添加 toast 用于提示短信自动转发失败后自动打开 Element;
      d) 动作 2-2: 添加 Shell 脚本:

      am start -a "android.intent.action.SEND" --es "android.intent.extra.TEXT" "短信补转发. 发送者: [sms_number]\n\n[sms_message]" -t "text/plain" im.vector.app.debug # 命令可能需要 root 权限. 

      e) 动作 3: 继续从 "如果条件" 添加 "else 从句";
      f) 动作 3-1: 单击一下 "其他", 此处可以添加一个通知 (或 toast) 用于提示短信自动转发成功;
      g) 保存修改.

    以上动作的排列顺序:
    https://imgur.com/a/y2uqATM

    效果:
    当收到短信的第一时间会自动转发短信到我自建的 Synapse 服务器 (前提是手机能联网或服务器在线), 其它所有安装了 Element 的终端 (包括备用机; 电脑; 平板电脑等) 都能收到. 灰色为自动发送 (专用账号), 绿色为手动发送 (自己的账号): https://imgur.com/a/OM9hS9H https://imgur.com/a/OaM8FXY

    缺点:
    如果因为各种原因无法与服务器通信, 则自动打开 Element 并选择联系人手动转发收到的短信. 然而这种情况下如果遭遇短信轰炸, 流程上会出现问题. 例如瞬间收到太多短信会导致人工根本忙不过来. 我希望能在没有人工干预的前提下完成发送到 Element, 等联网恢复再由 Element 发送到服务器. 这个目前尚未实现.

    第 1 条附言    2022-02-10 17:27:12 +08:00
    14 条回复    2022-07-10 16:00:57 +08:00
    nolo
        1
    nolo  
       2022-02-09 10:11:57 +08:00
    推荐绿芽,收到短信自动转发到微信。还可以在微信回复短信。用了好几年挺稳的
    cherbim
        2
    cherbim  
       2022-02-09 10:14:21 +08:00 via iPhone
    tasker 支持 post ,比你这个简单多了,缺点就是应用收费
    Maskeney
        3
    Maskeney  
       2022-02-09 10:17:27 +08:00   1
    都用到第三方黑箱软件了,要是我就直接选择 https://github.com/pppscn/SmsForwarder
    huoshen
        4
    huoshen  
       2022-02-09 10:29:11 +08:00   1
    支持这个 https://github.com/pppscn/SmsForwarder, 自用一年多, 因为人在国外手机卡丢了, 所以就补办了一个寄到家里, 然后用旧手机做的短信转发, 配合 bark 到 ios, 而且支持验证码自动复制, 目前来看没丢过任何信息, 非常好用.
    yaoyaomoe
        5
    yaoyaomoe  
       2022-02-09 10:33:14 +08:00 via iPhone
    如果不担心付费的话 绿芽更方便
    短信转发挺容易的,但是国内好多软件奇葩的需要发短信验证……所以我用过的软件几乎没有能做到的
    之后绿芽也能转发到自己写的 api 不过按照次数扣费
    当然 root 之后可以远程或者 airdroid 也可以……
    V9NN
        6
    V9NN  
       2022-02-09 12:01:26 +08:00
    自己的方案:
    类原生系统 + tasker ,自动转发到 Telegram ,目前稳定使用超过 2 年。
    GodD6366
        7
    GodD6366  
       2022-02-09 13:12:26 +08:00
    我用的是小转发+webhook ,然后服务器在根据具体内容做二次分发
    wujianxiong
        8
    wujianxiong  
       2022-02-09 14:31:37 +08:00
    买个多卡宝直接解决所有问题
    efcndi
        9
    efcndi  
       2022-02-09 14:53:07 +08:00
    @wujianxiong #8 这个还真解决不了所有问题。以我个人的情况为例:我办理了副卡给我老爸老妈用,但有时候必须要验证码才能办理业务,老人家年龄大了,根本搞不懂这些,所以也排除了打电话问验证码的方法。目前找到的相对可行的方法,就是把他们手机上的短信都转发到我的邮箱中,我可以在邮箱中查看。
    nathanw
        10
    nathanw  
       2022-02-09 19:25:09 +08:00 via iPhone
    ifttt 了解一下
    mokeduo
        11
    mokeduo  
       2022-02-09 21:17:52 +08:00 via Android
    macrodroid 相比 tasker 要更易使用些, 是不错的选择: 更少的应用调用, 更简洁的操作方式。
    既然用到了 shell 脚本, 可以考虑一下 Termux 下的自动脚本: 调用 api 来在单一应用内完成操作, 更多正则过滤可以设立等级日志。
    ifttt 这种怕是国内不合用。
    pomelo2y
        12
    pomelo2y  
       2022-02-10 09:19:52 +08:00
    automate 免费的能做到短信收发,
    写好规则,如果有网络就转发到邮箱,没网络就转发到短信,
    远程发短信可以自定义规则来分割目的号码和短信内容
    上述功能稳定使用 1 年多,现在直接放弃手机了,自己搭建 voip 网关,远程短信收发,远程接打电话都 OK
    paradox8599
        13
    paradox8599  
       2022-02-12 14:18:45 +08:00 via Android
    我用的 push bullet ,免费版功能就够用了
    mrjnamei
        14
    mrjnamei  
       2022-07-10 16:00:57 +08:00
    云短信验证码在线接收:

    无敌云短信地址: https://www.clearcode.cn
    有信云短信: https://smswudi.com
    极速云短信: https://www.k8s1.com
    云际云短信: https://yunjisms.xyz

    可以在线接收验证码,接码平台,通过虚拟手机号获取验证码
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5457 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 08:53 PVG 16:53 LAX 01:53 JFK 04:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86