从命令行发送短信
当您想到发送短信时,您可能会想到 iPhone 或 Android,而命令行不会出现在您的脑海中,但是多亏了非常有用的 curl 命令,您可以向任何手机发送 SMS 短信直接从终端号码。
是的,curl,用于在 URL 之间传输数据、下载文件、获取 HTTP 标头详细信息等的同一命令行工具,可以发送文本消息。这是通过发送到 TextBelt 服务的 POST 请求完成的,TextBelt 服务是一个免费的传出 SMS API。当然有限制,但他们相当慷慨,每天(每个 IP)75 条短信,而且你不能在三分钟内发送超过 3 条短信,以防止滥用。除此之外,请记住,您的手机提供商将按常规短信/短信费率向您收取传入短信的费用——这不使用 iMessage 服务——所以如果你没有无限流量,请不要过度使用它传统的短信计划。
使用curl从命令行发送文本消息
使用的基本语法如下,请务必将替换为您自己的10位电话号码(10位=区号+电话号码),然后将 message=text 替换为您自己要发送的消息:
" curl http://textbelt.com/text -d number=-d message=text goes here "
例如,要向电话号码 555-155-1555(不是真实号码)发送“你好,来自 OSXDaily.com”的文本,您可以使用以下命令字符串:
curl http://textbelt.com/text -d number=5551551555 -d message=来自OSXDaily.com的你好 "
是的,你也可以把另一个人的电话号码放在那里,但你可能不应该在未经他们许可的情况下这样做。
如果文本发送成功,命令行将返回一条消息,说明'{“success”:true}',如果由于某种原因失败,它将如下所示,通常表示命令语法中存在错误:'{“success”:false, ”message”: “Number and message parameters are required.”} curl: (6) Could not resolve host:' 只需查看命令字符串和再试一次。
短信应该会很快到达您的iPhone 或Android,尽管该服务的方便性可能取决于队列以及TextBelt 从其他地方接收的活动量。它会通过看起来像下面的东西来:
(如果您想知道,回复文本无处可去,什么也不做,这不是双向服务)
这适用于从Mac OS X、Linux 以及可能具有curl 访问权限的任何其他操作系统或服务发送文本。接收方应该使用任何接受短信的手机,无论是iPhone还是老砖诺基亚。
向Bash 添加快速“发送文本”命令
如果您享受从终端向自己发送文本的便利并计划经常使用它,您可以创建一个简单的bash 脚本,通过将以下内容添加到您的.bash_profile 来缩短命令字符串。请务必将号码替换为您的 10 位电话号码:
"sendtext () { curl http://textbelt.com/text -d number=5551113333 -d message=$1;echo message sent; }"
在您的bash_profile 中,您可以简单地键入“sendtext your message goes here”向自己发送文本。这也允许使用双符号 && 带来一些乐趣和实用性,比如在软件包安装完成时或远程文件下载完成时向自己发送 SMS 警报。有命令行经验的人可能会想到一百万个其他方便的用途。
根据 TextBelt,该服务绝对适用于美国境内的以下蜂窝网络:Alltel、Ameritech、AT&T Wireless、Boost、CellularOne、Cingular、Sprint PCS、Telus Mobility、T-Mobile、Metro PCS 、Nextel、O2、Orange、Qwest、Rogers Wireless、US Cellular、Verizon、Virgin Mobile。这可能仅限于美国,但我们无法测试该地区以外的网络,如果您在其他地方尝试一下,请告诉我们。