# [翻译]通过树莓派发送短信Send SMS Messages from Raspberry Pi

- URL: https://wuming.si/blog/986/
- Author: Aaron
- Published: 2015-06-23
- Language: zh-Hans
- Categories: Raspberry Pi, Technology
- Originally published at: https://blog.wo.ai/archives/986

本站首发，转载请注明作者及引用网址

原文地址：

https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=69286&sid=89b99af621144e400c588b4ef6cad708

写这篇文章背景故事很简单。我有一个树莓派，花了35刀的一个超小的arm计算机。我用它运行Nagios来监控我的服务器（因为过段时间我要出去旅行）。我希望当我的服务器有警报信息的时候，它会给我发一条短信，而我实在不原意在花钱买个SMS网关，太奢侈了，实际上email就可以了，但我更喜欢短信。然后我就开始找解决方案。

我在githut上找到一个允许我通过简单的python脚本来发送短信，地址是https://github.com/korylprince/pygvoicelib。下面的步骤将讲述如何如何通过pi来发送短信。步骤1：确保你的PI已经安装了系统并且有internet连接  
步骤2：注册一个google voice帐号，这里需要一个gmail的帐号。  
步骤3：在你的google帐号里面允许2步验证，地址是https://accounts.google.com/b/0/IssuedAuthSubTokens 

步骤4：创建一个指定应用的密码，打开https://accounts.google.com/b/0/IssuedAuthSubTokens，移到最下面，在name框里填上Raspberry Pi（或者任何你想要的名字来标示你的设备），然后点击生成密码。  
你将会得到一个一次性的密码

步骤5：登陆到你的Pi打开命令行或者通过putty连接到SSH

然后进入到你的home目录，比如我的是/home/pi

    `cd /home/pi  
`

步骤6: 从github克隆所有代码

首先运行下面的指令来阻止ssl错误

    `export GIT_SSL_NO_VERIFY=1  
`

然后运行下面的指令来克隆

    `git clone https://github.com/korylprince/pygvoicelib.git  
`

步骤7：让Pi得到google的授权

cd到刚创建的pygvoicelib目录  
运行以下指令：

    `python get_auth.py  
`

将会提示你输入你gmail帐号和你在第四步得到的的应用的密码。在你输入这些信息以后，你会看到很多参数显示在终端上。记住以下参数，你在后面的步骤里将会用到  
username  
apppass  
auth_token  
rnr_se

步骤8：创建一个脚本来发送短信

运行下面的指令，你也可以用nano来编辑

    `vi text.py  
`

将下列的代码贴到你创建的文件里面

    `#!/usr/bin/python  
import pygvoicelib  
number = raw_input(‘number:’)  
txtmsg = raw_input(‘message:’)  
client = pygvoicelib.GoogleVoice(username,apppass,auth_token,rnr_se)  
client.sms(number,txtmsg)  
`

用你在第7步创建的的username,apppass,auth_token,和rnr_se来替换这个文件中的参数  
示例Example:

    `#!/usr/bin/python  
import pygvoicelib  
number = raw_input(‘number:’)  
txtmsg = raw_input(‘message:’)  
client = pygvoicelib.GoogleVoice(‘name@gmail.com’,'asdfahrwsthjtrh’,’4k3EozF_Qmrg3tD2_m56nQtFHCVSaTdUxb7HvcaN6g3PV929VH0eH4GGVOVpbVK2O6EaGFzMDYA6PhPjaEHr0ZGjO1GQN3RGhQLXqePWfglbXnA2n7XpUophOk5qztQyv2fYM7eYgtVCYeO6txTqbDQAAANsAAABZ7d0GTL2pJsUauPkH4Z3cpbJFqjfLZYfhok1b11pIMDnEOypZgIcOVdPEt8jEMx7oY9hHJeJoDQZYndDJDu8uoDbDWgxl87GMy990snKWR8iy8VIB17769eVWboa3224U8DLZLUWMpP0d4hfsDK5MQ’,'L6tph126BjmNjDcfTZGaWYeb+sk=’)  
client.sms(number,txtmsg)  
`

步骤9：发送短信

运行以下的指令

    `python text.py  
`

它将提示你输入电话号码以及短信内容

步骤10：庆祝，打开一瓶啤酒然后好好的享受吧。

我另外也在我的blog写了这个操作步骤：[http://citycorpse.com](http://citycorpse.com/)

精彩回复：

by **[default_user8](https://www.raspberrypi.org/forums/memberlist.php?mode=viewprofile&u=90598)** » Wed Feb 12, 2014 7:10 pm

Try sms via email key  
here is a list by provider  
Provider Format  
Sprint [phonenumber@messaging.sprintpcs.com](mailto:phonenumber@messaging.sprintpcs.com)  
Verizon [phonenumber@vtext.com](mailto:phonenumber@vtext.com)  
T-Mobile [phonenumber@tmomail.net](mailto:phonenumber@tmomail.net)  
AT&T [phonenumber@txt.att.net](mailto:phonenumber@txt.att.net)  
AIM +1phonenumber

by **[drgeoff](https://www.raspberrypi.org/forums/memberlist.php?mode=viewprofile&u=9187)** » Thu Feb 13, 2014 10:16 am

> DougieLawson wrote:I don’t think using Google Voice to send SMS messages is available outside the US & Canada. 我觉得这个除了美国和加拿大以外的地方都用不了

For 99% of the population of USA and Canada, that is the whole world. ![:lol:](https://www.raspberrypi.org/forums/images/smilies/icon_lol.gif)

对于美国和加拿大的99%人口来说，这就是整个世界了。

老美的傲慢和自豪感觉得他们的世界就是整个世界了，当然也是调侃的语气啦，至少人家分享的精神就很好。

至于说google voice不能在天朝用的问题，只能通过翻墙来解决了。可以在手机上装一个google voice的客户端，接受推送还是可以的。另外一个解决方案就是用飞信了，注册以后，发送邮件到13xxx@139.com，就可以收到短信了，完全免费哦，不过只能发送到移动号码，电信和联通的貌似也有类似功能，但是没有用过，可以试验一下。
