从命令行发送 SMS 文本消息

从命令行发送短信 想到 iPhone 或 Android,并且您不会想到命令行,但多亏了一直有用的 curl 命令,您可以直接从终端向任何电话号码发送 SMS 文本消息。

是的,curl,用于在 URL 之间传输数据的相同命令行工具,下载文件获取 HTTP 标头详细信息,等等 更多,可以发短信。这是通过发送到 TextBelt 服务的 POST 请求完成的,TextBelt 服务是一个免费的传出 SMS API。当然有限制,但他们相当慷慨,每天(每个 IP)75 条短信,而且你不能在三分钟内发送超过 3 条短信,以防止滥用。除此之外,请记住,您的手机提供商将按常规短信/短信费率向您收取传入短信的费用——这不使用 iMessage 服务——所以如果你没有无限流量,请不要过度使用它传统的短信计划。

使用 curl 从命令行发送文本消息

使用的基本语法如下,一定要把##########替换成你自己的10位电话号码(10位=区号+电话号码),然后替换消息= 带有您自己要发送的消息的文本:

curl http://textbelt.com/text -d number=########## -d "message=text goes here"

例如,要向电话号码 555-155-1555(不是真实号码)发送“hello from OSXDaily.com”的文本,您可以使用以下命令字符串:

curl http://textbelt.com/text -d number=5551551555 -d "message=hello from OSXDaily.com"

是的,你也可以把另一个人的电话号码放在那里,但你可能不应该在没有他们许可的情况下这样做。

如果文本发送成功,命令行将返回一条消息,说明'{“success”:true}’,如果由于某种原因失败,它看起来像下面这样,这通常表示命令语法错误:'{“success”:false,”message”: “需要数字和消息参数。”} curl: (6) Could not resolve host:’ 只需查看命令字符串并重试。

短信应该会很快到达您的 iPhone 或 Android,尽管该服务的便利性可能取决于队列以及 TextBelt 从其他地方接收到的活动量。它会通过看起来像下面这样的东西来实现:

iPhone 上从 TextBelt 命令发送的短信专线服务

(如果您想知道,回复文本无处可去,什么也不做,这不是双向服务)

这适用于从 Mac OS X、Linux 以及可能具有 curl 访问权限的任何其他操作系统或服务发送文本。接收方应使用任何接受 SMS 的手机,无论是 iPhone 还是老砖诺基亚。

向 Bash 添加快速“发送文本”命令

如果您享受从终端给自己发送文本的便利并计划经常使用它,您可以创建一个简单的 bash 脚本,通过将以下内容添加到您的 .bash_profile 来缩短命令字符串。请务必将号码替换为您的 10 位电话号码:

sendtext () { curl http://textbelt.com/text -d number=5551113333 -d "message=$1"echo 消息已发送; }

在您的 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。这可能仅限于美国,但我们无法测试该地区以外的网络,如果您在其他地方尝试一下,请告诉我们。