OpenWRT 接收的短信转发到微信

点击 https://sct.ftqq.com/ 进入 Server酱,点击网页右上角的登录按钮,用微信扫描二维码登录,就获得了一个 SendKey,保存下来,在浏览器地址栏填入以下内容进行测试,把 <SendKey>替换为自己的 SendKey,<title>替换为自己想要的标题, <content>替换为自己想要输入的内容

https://sctapi.ftqq.com/<SendKey>.send?title=<title>&desp=<content>

改好的样子大概是这样

https://sctapi.ftqq.com/SCT325519TyMYyVJYJdPuzzJtBeUgB7gnl.send?title=hello&desp=world

如果微信可以接收到到消息,再接着往下。在OpenWRT软件包里安装 iconv ,这个插件用来解决中文乱码问题。输入以下命令,编写把新接收的短信发送到微信的脚本

vim /root/pushsms.sh

输入以下内容,把下面的 SendKey 改成自己的

#!/bin/sh
# 把刚接收的短信转换为文本
if [ "$1" == "RECEIVED" ]; then
    from=`grep "From:" $2 | awk -F ': ' '{printf $2}'`
    #sent=`grep "Sent:" $2 | awk -F ': ' '{printf $2}'`
    #received=`grep "Received:" $2 | awk -F ': ' '{printf $2}'`
    alphabet=`grep "Alphabet:" $2 | awk -F ': ' '{printf $2}'`

    if [ "$alphabet" = "UCS2" ]; then
        content=$(sed -e '1,/^$/ d' < "$2" | iconv -f UNICODEBIG -t UTF-8)
    else
        content=$(sed -e '1,/^$/ d' < "$2")
    fi

text=$(cat <<EOF
$from:
$content
EOF
)
   
# 配置微信API
sendkey=<SendKey>

# 把短信发送到微信
curl -d "title=$from&desp=$content" -X POST https://sctapi.ftqq.com/$sendkey.send
fi

输入以下内容给 pushsms.sh 授权,这一步很重要,如果没执行一下命令,可能会导致无法发送邮件

chmod +x /root/pushsms.sh

在 OpenWRT 软件包里安装 smstools3,输入以下命令,配置 smstool3

vim /etc/smsd.conf

填写以下内容

#
# Description: Main configuration file for the smsd
#

devices = GSM1
incoming = /var/spool/sms/incoming
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
sent = /var/spool/sms/sent
receive_before_send = no
autosplit = 3

# 设置接收短信的编码格式为 utf8,不然会出现乱码
incoming_utf8 = yes
loglevel = notice
#delaytime = 0

# 这里链接刚才编写的脚本,意思是如果有新的短信就触发该脚本
eventhandler = /root/pushsms.sh

[GSM1]
# ME模式(将短信保存在上网卡中,更快,不支持的话请使用下面的 SM模式)
init = AT+CPMS="ME","ME","ME"
# SM模式(将短信保存在 USIM 卡中)
# init = AT+CPMS="SM","SM","SM"

# 这里要修改成你对应的端口号
device = /dev/ttyUSB2
incoming = yes
#pin = 0000

# 波特率一般都是115200,如果不对修改成你自己的
baudrate = 115200
signal_quality_ber_ignore = yes
detect_unexpected_input = no
memory_start = 0

重启 smsd 进程

/etc/init.d/smstools3 restart

最后用自己的手机给软路由的手机号发送短信,就可以微信里收到短信了。

参考文献

[1] 设置微信接受消息 API.
[2] 把接收的短信转换为文本.
[3] 解决乱码问题

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值