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


51

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

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

注意:我要求使用bash解决方案,因为它比安装和配置GUI更简单。另外,与使用python,HTML或java等工具相比,在bash上工作更舒服。最后,当您使用Windows Linux子系统WSL)时,bash解决方案可在Windows 10中使用。

注2:回复评论:

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

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


1
如果我没看错,则要求您提供与“查找我的电话”服务相同的功能,无论音量,振动模式,蓝牙耳机等使电话静音的任何因素,它都会使您的电话响铃。我知道Google可以为Android提供一个,但我不知道它的命令行形式。如果我能弄清楚,它是无限使用的。苹果也是如此。
Terrance

3
Android上没有要安装的软件。您只需访问google.com/android/find
Terrance

3
“好吧Google!” 听加剧....
迈克尔·弗兰克

Answers:


45

从终端/外壳/重击发送短信

对于以下步骤,请打开终端提示符,也称为“命令行界面”或“ 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

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

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


从Bash发送SMS短信的其他原因

找到我的智能手机是从Bash发送SMS短信的不寻常需求。在以下情况下,您可能会有几个人应该发短信:

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

textbelt.com 每天免费提供一个文本

给定的发件人每天只能发送一条免费的 SMS消息。这是一天中的第一次和第二次尝试的示例:

$ 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}

注意:您也许可以每天为路由器的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
  • 使用发送短信 sms 7801234567 "Hello World"
  • 谢谢Fabby从欧盟进行了测试并确认它在那里起作用。

通过短信发送电子邮件至智能手机运营商

接下来,您需要的是Web浏览器,例如FireFox,Internet Explorer或Chrome。无需深入探讨“ bash”,也不必每天限制自己阅读一份免费文字。

许多运营商都允许您通过将电子邮件发送到来向智能手机发送短信phone_number@mobile_provider_name.com

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

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

费用承运人Lookup.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

然后在您的bash代码中,如下所示

ssmtp 5551234567@att.com < mail.txt

哪里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>

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


16
还有一些您可以发送给电话公司的电子邮件地址,电话公司会将其作为文本转发给您的电话。
凯文(Kevin)

1
Skype可以发送SMS或常规语音电话(这会使电话发出更长的声音)。它要花钱,但不要太多。也许他们不会为通话收费,如果您不接(找到电话后);-)
sudodus 18/12/23

2
通过电子邮件发送TEXT的作品。但是,您需要知道短信接收者使用的载体。目前,您可以通过freecarrierlookup.com确定, 您还将获得用于发送SMS或MMS消息的电子邮件地址。例如:8771234567@txt.att.net ...获取发送文本的电子邮件地址后,然后使用所需的任何电子邮件方法,从命令行邮件,gmail,雷鸟等,对文本消息进行格式化并发送。
TonyB

2
我知道这不在本问答的范围内,但是如果要向专用用户发送有关已满磁盘/ RAM或任何其他故障的警报,我将不依赖于每天发送一次SMS而是将调制解调器与SIM卡连接的服务。在德国(欧洲?),CEP CT63非常受欢迎。
PerlDuck

1
“大多数(如果不是全部)运营商”这是相当本地化的信息。在此附近(荷兰),它似乎无效。
桅杆

22

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

如果您使用的是Android手机,并且不想使用命令行,则可以在网络浏览器中访问https://www.google.com/android/find,然后从那里响起您的手机,而无需考虑静音,震动或连接到蓝牙耳机。您的手机也不需要额外的软件。您一天中也可以进行多次此操作。


4

使用Google环聊从浏览器拨打电话

即使您没有座机,也可以通过呼叫来定位手机。

先决条件:一个Google帐户

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

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

我看到$0.00要拨打的电话号码旁边。您能否详细说明使用此服务的费用?
WinEunuuchs2Unix

没有钱就无法在我的国家工作。
sudodus

1
@ WinEunuuchs2Unix非常抱歉!我忘记了Google环聊针对美国和加拿大境外的通话收取费用。我已经相应更新了答案。
诺妮·穆斯

@NonnyMoose感谢您的更新。在发表评论之前,我已经赞成您的回答。
WinEunuuchs2Unix

1

我几年前做的方式是玩python并学习语言。

我所做的是:

  • 编写一些使用smtp模块的python代码
  • 使用Gmail进行测试
  • 找出映射到我的电话号码的电子邮件地址(查找三大运营商的电子邮件到文本API(实际上,它们只是一个以用户为电话号码的电子邮件域))
  • 创建命令行工具
  • 用我的电话号码测试

和VOILA!从bash发短信。

由难以使用的移动设备编写的Ps ...如果引起更多关注,我可以考虑查找旧代码


4
我认为python不是必需的部分,请使用unix邮件实用程序发送消息。
val

1
我认为这更多是对答案的概述,需要遵循的重要步骤/命令。
WinEunuuchs2Unix

1
@val使用mail而不是用smtp声音编写python代码,就像您可能会得到更简单,更快速的解决方案。只需执行一个简单的bash shell脚本,该脚本将少于星期四的行数。
Trevor Boyd Smith,

1
这个答案缺乏实质。“我如何通过bash发短信给自己”-“我确实做到了,使用smtp在我自己的手机上使用python和gmail” ...对您来说听起来像是富有成效的还是令人满意的答案?
vol7ron

您是否在底部注意到“由难以使用的移动设备编写的P”。||| 重新创建步骤并不难。您只是从命令行发送电子邮件。该mail命令可能比Python代码更容易。
Trevor Boyd Smith,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.