使用USB 3G上网卡+树莓派搭建接受短信自动转发邮箱的服务

  • 背景:人在国外刚下飞机   咳咳,人在国外,国内很多网络,电话服务都需要短信验证,一直以来都用的双卡手机来解决这个问题。最近换了单卡手机,琢磨着3g上网卡应该可以接受短信,再配合7D24H运行的树莓派,做一个短信中转服务,应该不难
  • 原理:3G上网卡插国内已经开通漫游服务的卡,将接受的短信保存后,自动转发到自己常用的邮箱里。
  • 适用人群:国外党,单卡手机双卡党,双卡手机三卡党。。。
  • 我的硬件:树莓派3B,Aliexpress上淘的华为3G上网卡e1750
    • 3G上网卡的选择
      • 建议找那种写了unlock的,否则可能挑运营商
      • 网上找找别人用的啥就卖啥,买回来识别不了就折腾了
      • 虽然上网卡一般都可以收发短信,接打电话,甚至数据上网,但本文只需要接收短信的功能

 

1. 调试3G上网卡

插上3G上网卡

root@raspberrypi:/var/spool/gammu/inbox# lsusb
Bus 001 Device 012: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
Bus 001 Device 014: ID 12d1:140c Huawei Technologies Co., Ltd. E180v
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

可以看到014就是上网卡(不知道型号为啥有点不一样)

root@raspberrypi:/var/spool/gammu/inbox# ls /dev/ttyUSB*
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB3
root@raspberrypi:/var/spool/gammu/inbox#

然后找挂载的名字,一般来说最后插上的序号就最大,我的是ttyUSB3

一个更好的方法是使用ID,因为挂载点会变来变去 参考这里 General Gammu FAQ — Gammu 1.42.0 documentation

如果这里你没发现自己的设备,可能你需要换其他的卡或者自行寻找驱动了。。

接下来配置gammu

sudo apt-get install gammu #安装gammu

gammu-config

#填一下刚才记下的挂载名
#port我用的默认at,可能不同卡需要调试其他的选择

gammu identify 

#这里可以看到gammu识别了你的上网卡,电话卡信息

接下来配置gammu的短信daemon 代码里#汉字最好去掉,有时候会bug

sudo apt-get install gammu-smsd

sudo vim /etc/gammu-smsdrc

# Configuration file for Gammu SMS Daemon

# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/ttyUSB3 #改自己的
connection = at
# Debugging
#logformat = textall

# SMSD configuration, see gammu-smsdrc(5)
[smsd]
#RunOnReceive = /var/spool/gammu/auto_send_mail.sh #接收到短信便执行此script
service = files
logfile = syslog
# Increase for debugging information
debuglevel = 0

# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/  #接收到的短信在这
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

先不管自动执行的插件,我们先测试能否正常接收短信

systemctl start gammu-smsd.service
systemctl enable gammu-smsd.service

执行后给此电话发个短信,inbox里应该会出现发送的短信,以txt形式来存储

root@raspberrypi:/var/spool/gammu/inbox# ls
IN20170930_101810_00_95378_00.txt           IN20191108_142011_00_10655089321279372975_00.txt
IN20170930_110414_00_10690486_00.txt        IN20191108_142255_00_10655089321279372975_01.txt
IN20170930_110518_00_106980005858_00.txt    IN20191108_160925_00_95395_00.txt
IN20170930_111147_00_106980005858_00.txt    IN20191108_201701_00_1069149187561439_00.txt
IN20170930_140453_00_95395_00.txt           IN20191108_201701_00_1069149187561439_01.txt
IN20170930_144549_00_95511_00.txt           IN20191109_102158_00_95188_00.txt
IN20191107_231609_00_95188_00.txt           IN20191109_102731_00_95188_00.txt
IN20191107_232754_00_95188_00.txt           IN20191109_160608_00_10655025160989757920_00.txt
IN20191108_122718_00_10655025995188_00.txt  IN20191109_160608_00_10655025160989757920_01.txt
IN20191108_124816_00_10010_00.txt           IN20191109_204012_00_106550002800077575_00.txt
IN20191108_124816_00_10010_01.txt           IN20191109_204350_00_106901336930_00.txt
IN20191108_124816_00_10010_02.txt           IN20191109_204619_00_95188_00.txt
IN20191108_140653_00_95395_00.txt           IN20191109_204635_00_95188_00.txt
IN20191108_141001_00_95395_00.txt           IN20191109_205336_00_95188_00.txt

2.调试邮件发送服务

  请参考这篇文章、同时注意文章内所有代码需在root下进行(因为服务是以root权限运行的,所以需要将各配置文件建立在/root里)https://blog.csdn.net/zhuyanjun0818/article/details/102992252

 

3.通过script连接1,2实现短信自动转发邮箱

现在开始配置自动转发服务

在1中我们看到gammu是支持收到短信后直接执行自定义任务的

具体的文档在https://wammu.eu/docs/manual/smsd/run.html#

其中有各种全局局部变量,包括短信的内容也有,所以我们想直接使用它

注意一句话:. You can use it together with NULL service 所以得先将服务类型改为null 才能使用变量


sudo vim /etc/gammu-smsdrc
。。。。。
[smsd]
RunOnReceive = /var/spool/gammu/auto_send_mail.sh #接收到短信便执行此script
#service = files
service = null
。。。。

配置后记得重启下

systemctl restart gammu-smsd.service
systemctl enable gammu-smsd.service

接下来书写自动转发的script

#!/bin/sh
for i in `seq $SMS_MESSAGES` ; do
  echo "\n \
        ***************** \n \
        $SMS_1_TEXT \n \
        ***************** \n \
  " |mutt -s "SMS send by $SMS_1_NUMBER" xxx@gmail.com
done

 

关于开机自启:

gammu identify和 systemctl restart gammu-smsd.service这个必须每次启动后延时(2分钟)执行一次,否则后面的短信daemon似乎会报错。我就把它放local.rc了。

(
sleep 120
gammu identify
systemctl restart gammu-smsd.service
)&

最后的效果图,还不错吧哈哈

   

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
树莓派 B型板是一款迷你电脑,用于学习和创造电子设备的创客板。在树莓派B型板上连接USB无线网可以实现无线网络连接,提供方便的互联网访问。 首先,要使用USB无线网,需要将其插入树莓派B型板的USB接口中。树莓派B型板有4个USB接口,可同时连接多个USB设备。 接下来,在树莓派的操作系统中进行配置。树莓派操作系统通常使用Raspbian,一个专门为树莓派设计的Linux发行版。打开终端,通过命令行输入ifconfig命令,可以查看当前网络接口的配置情况。 然后,在树莓派B型板上配置USB无线网的网络连接。可以通过编辑网络配置文件来设置无线网络参数,如SSID(无线网络名称)、密码等。在终端中使用命令sudo nano /etc/network/interfaces,可以打开网络配置文件进行编辑。 编辑完成后,保存并退出。然后,通过终端输入sudo /etc/init.d/networking restart命令重启网络服务,使配置生效。 最后,通过终端输入ifconfig命令,可以再次查看网络接口的配置情况。如果配置正确,将会显示无线网的相关信息,如IP地址、子网掩码等。 通过以上步骤完成后,树莓派B型板就可以使用USB无线网进行无线网络连接了。可以通过浏览器上网、下载和安装软件、远程登录等各种互联网功能。 需要注意的是,不同型号的USB无线网对于树莓派的兼容性可能有所差异。在选择USB无线网时,要确保其与树莓派B型板兼容,并且能够在树莓派的操作系统中得到正确的识别和配置。可以参考树莓派官方网站或相关论坛上的信息,选择合适的USB无线网

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值