如何从终端发送手机短信?

Win*_*nix 62 command-line bash sms windows-subsystem-for-linux

我刚刚丢了手机。我知道它在我家里,因为我昨晚用过它,今天早上我的蓝牙扬声器会连接到它。

如何使用 bash 给我的手机发短信?然后电话通知会响起,我可以找到我的电话。

注意:我要求使用 bash 解决方案,因为它比安装和配置 GUI 更简单。此外,与 python、HTML 或 java 等相比,我更喜欢在 bash 中工作。最后,当您使用适用于 LinuxWindows 子系统( WSL )时,bash 解决方案可以在 Windows 10中运行

注2:回复评论:

  • 我没有固定电话,所以我不能简单地打电话给我的智能手机。
  • 当我丢失手机时是周日早上 6 点。我可以通过电子邮件给我的手机打电话的人正在睡觉。我不确定电池的电量水平,如果它没电了,我永远无法给它发短信。
  • 几周前,我关闭了智能手机上的电子邮件声音通知,因此无法给自己发送电子邮件。
  • 我没有skype或没有任何VOIP服务提供商

30 分钟后,我确实通过使用我在下面发布的答案发短信找到了智能手机。它隐藏在客厅的 4 英寸高地板家具架子下......

Win*_*nix 59

来自终端/外壳/ Bash的短信

对于以下步骤,打开终端提示又名“命令行界面”或“CLI”。在大多数Linux发行版做到这一点使用Ctrl+ Alt+T

textbelt.com 从 bash 发送文本

我找到了一篇 reddit 文章:使用您可以使用的 Bash / Terminal 命令从命令行发送 SMS 文本消息

curl -X POST https://textbelt.com/text \
   --data-urlencode phone='7801234567' \
   --data-urlencode message='Find Your Phone!' \
   -d key=textbelt
Run Code Online (Sandbox Code Playgroud)

替换7801234567为您的电话号码。如果您要向国际电话号码发送短信(加拿大/美国境外),请遵循以下说明

注意:该软件替换了“查找您的电话!” 带有您需要购买密钥才能使用自定义消息的消息。但是该软件仍然坚持您必须提供被覆盖的消息。


从 Bash 发送 SMS 文本消息的其他原因

找到我的智能手机是一种从 Bash 发送 SMS 文本消息的不寻常需求。您可能有一些人应该在以下情况下发短信:

  • 磁盘即将发生故障(或发生其他硬件错误)
  • 磁盘空间利用率超过阈值,例如90%
  • RAM 已满,并且大量使用交换
  • Web 服务器正在遭受外部攻击
  • 用户的无效登录次数过多且帐户已停用
  • 已运行影响关键流程的特定作业
  • 门牌读取器监控某个正在解锁的门

textbelt.com 每天一个文本是免费的

给定的发件人每天只能发送一条免费短信。以下是某天第一次和第二次尝试的示例:

$ find-phone # bash script with above command
{"success":true,"textId":"168141545572031481","quotaRemaining":0}

$ find-phone
{"success":false,"error":"Only one test text message is allowed per day.","quotaRemaining":0}
Run Code Online (Sandbox Code Playgroud)

注意:您也许可以每天为多个文本重置路由器的 IP 地址,但我尚未对此进行测试。

您可以使用预付费无限文本。有许多 SMS 网关服务可用。上述供应商链接的定价从每条文本 0.03 美元到 0.15 美元不等。这仅供参考,而不是认可或推荐。请做好功课并以最优惠的价格寻找信誉良好的付费服务供应商。


创建 Bash 脚本

您可以创建一个名为sms包含的 bash 脚本:

#!/bin/bash
curl -X POST https://textbelt.com/text --data-urlencode phone='$1' --data-urlencode message='$2' -d key=textbelt
Run Code Online (Sandbox Code Playgroud)
  • 使用发送短信 sms 7801234567 "Hello World"
  • 感谢 Fabby 从欧盟测试此并确认它在那里工作。

使用 SMS 文本消息向智能手机的运营商发送电子邮件

对于以下所有内容,您只需要一个 Web 浏览器,例如 FireFox、Internet Explorer 或 Chrome。无需潜入“大便”或将自己限制为每天一篇免费文本。

许多运营商允许您通过将电子邮件发送至 将 SMS 文本消息发送到智能手机phone_number@mobile_provider_name.com

电话号码查找以获取运营商的网站地址

要使用电话号码获取提供商的网站地址,请访问:https : //freecarrierlookup.com/。想象一下我们输入了电话号码7801234567

费用载体查找.png

我们被告知要使用的电子邮件地址是7801234567@pcs.rogers.com。现在向此地址发送一封电子邮件,您的手机将发出通知。

当然,如果您将智能手机配置为在收到电子邮件时发出通知,您可以首先简单地通过电子邮件发送您的手机!

用于发送电子邮件地址的 CLI 界面

Ask Ubuntu 中有许多关于如何使用 bash 发送电子邮件的问题和答案。我正在使用ssmtp(安全简单邮件传输协议)进行cron日常备份:将Linux 配置、脚本和文档备份到 Gmail

尽管此设置适用于一个用户,但您可以创建一个包含多个用户的文件,以便向以下用户发送短信:

Name         Email Address
Tiny Tim     5551234567@att.com
Mrs. Clause  5552223333@sprint.com
Bad Elf      5551114444@telus.net
Run Code Online (Sandbox Code Playgroud)

然后在你的 bash 代码中是这样的

ssmtp 5551234567@att.com < mail.txt
Run Code Online (Sandbox Code Playgroud)

哪里mail.txt看起来像这样:

Cc: admin@our_company.com
Subject: Nightly Database Update FAILED
From: root@our_company.com
Content-Type: text/html; charset="utf8"


<html>
<body>
<div style="
    background-color:
    #abcdef; width: 300px;
    height: 300px;
    ">
</div>
Nightly database update failed at procedure: AP005.
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

有很多方法可以从 bash 发送电子邮件。这只是一个例子。重要的是电子邮件地址包含智能手机号码,后跟智能手机提供商的网址

  • 还有[电子邮件地址](https://20somethingfinance.com/how-to-send-text-messages-sms-via-email-for-free/)你可以发送到电话公司会转发到你的手机作为文本。 (16认同)
  • 通过电子邮件发送文本有效。但是,您需要知道短信收件人使用的运营商。目前,您可以通过 https://freecarrierlookup.com/ 确定您还将获得一个用于发送 SMS 或 MMS 消息的电子邮件地址。即:8771234567@txt.att.net... 获得发送文本的电子邮件地址后,然后使用您喜欢的任何电子邮件方法,从命令行邮件、gmail、雷鸟等来格式化文本消息并发送. (2认同)
  • 我知道这超出了本问答的范围,但是为了向专用用户发送磁盘/RAM 已满或任何其他故障的警报,我不会依赖每天发送一次 SMS 的服务,而是将调制解调器与 SIM 卡连接起来。在德国(欧洲?)[CEP CT63](https://www.thomas-krenn.com/en/wiki/CEP_CT63_Modem) 非常流行。 (2认同)

Ter*_*nce 24

此答案不适用于命令行,因为我找不到适用于 Google 的命令行解决方案。

如果您有 Android 手机并且不想使用命令行,您可以在网络浏览器中访问https://www.google.com/android/find并从那里响铃您的手机,无论静音、振动或连接到蓝牙耳机。您的手机也不需要额外的软件。这也可以在一天内进行多次。


Non*_*ose 5

使用 Google Hangouts 从浏览器拨打电话

即使您没有固定电话,也可以通过拨打电话来定位您的手机。

先决条件:一个Google帐户

注意:只有大多数拨打美国和加拿大的电话是免费的。请参阅https://www.google.com/voice/b/0/rates?p=hangout了解费率。

  1. 前往hangouts.google.com
  2. 点击“拨打电话”按钮:
    按钮截图
  3. 点击“新对话”:
    按钮截图
  4. 输入你的电话号码:
    数字输入框截图
  5. 点击“呼叫”:
    通话按钮截图