Como posso enviar uma mensagem de texto móvel do terminal?

51

Acabei de perder meu telefone. Eu sei que está aqui em minha casa porque eu usei ontem à noite e meus alto-falantes bluetooth se conectarão a ele esta manhã.

Como posso enviar uma mensagem de texto para meu telefone usando o bash? Em seguida, a notificação do telefone tocará e eu posso encontrar meu telefone.

Nota: Pedi uma solução bash porque é mais simples do que instalar e configurar uma GUI. Também me sinto mais confortável trabalhando no bash do que em python, HTML ou java etc. Finalmente, uma solução do bash funciona no Windows 10 quando você usa o Windows Subsystem for Linux ( WSL ).

Nota 2: resposta aos comentários:

  • Eu não tenho um telefone fixo, então não posso simplesmente ligar para o meu smartphone.
  • Eram 6 horas da manhã de domingo quando perdi meu telefone. As pessoas para quem eu poderia enviar um e-mail para ligar para o meu telefone estavam dormindo. Eu não tinha certeza do nível de carga da bateria e, se ele morresse, nunca conseguiria enviar uma mensagem de texto.
  • Algumas semanas antes, eu havia desativado as notificações sonoras por e-mail no meu smartphone para não poder me enviar e-mail.
  • Não tenho skypeou nenhum provedor de serviços VOIP

Após 30 minutos, encontrei o smartphone usando a resposta que eu postei abaixo. Estava escondido embaixo da prateleira de móveis de 10 cm na sala de estar ...

WinEunuuchs2Unix
fonte
11
Se eu li isso corretamente, você está solicitando o equivalente ao serviço Find My Phone que tocará no telefone, independentemente do volume, modo de vibração, fone de ouvido bluetooth, etc. conectado, que fará o telefone ficar silencioso. Eu sei que o Google tem o único para Android que você pode fazer, mas não conheço a forma de linha de comando dele. Se eu puder descobrir, é ilimitado para uso. A mesma coisa para a Apple.
Terrance
3
Não há software para instalar no Android. Você simplesmente acessa google.com/android/find
Terrance
3
"OK Google!" a escuta se intensifica ...
Michael Frank

Respostas:

45

Mensagens de texto SMS do Terminal / Shell / Bash

Para as etapas a seguir, abra um prompt de terminal, conhecido como "Command Line Interface" ou "CLI". Na maioria das distribuições Linux, faça isso usando Ctrl+ Alt+T

textbelt.com enviar texto do bash

Encontrei um artigo do reddit: Envie uma mensagem de texto SMS da linha de comando com este comando Bash / Terminal que você pode usar:

curl -X POST https://textbelt.com/text \
   --data-urlencode phone='7801234567' \
   --data-urlencode message='Find Your Phone!' \
   -d key=textbelt

Substitua 7801234567pelo seu número de telefone. Se você estiver digitando um número de telefone internacional (fora do Canadá / EUA), siga estas instruções .

Nota: O software substitui "Encontre o seu telefone!" com uma mensagem de que você precisa comprar uma chave para usar uma mensagem personalizada. Mas o software ainda insiste em que você deve fornecer uma mensagem que seja substituída.


Outros motivos para o envio de mensagem de texto SMS do Bash

Encontrar meu smartphone era uma necessidade incomum de enviar uma mensagem de texto SMS do Bash. Você pode ter algumas pessoas que devem receber mensagens de texto quando:

  • Os discos estão prestes a falhar (ou outros erros de hardware ocorreram)
  • A utilização do espaço em disco excede o limite, por exemplo 90%
  • A RAM está cheia e a troca está sendo muito usada
  • Servidor da Web está enfrentando ataques externos
  • Um usuário tinha muitos logins inválidos e a conta está desativada
  • Foi executado um trabalho específico que afeta os principais processos
  • Um leitor de identificação de porta monitora uma determinada porta sendo destrancada

textbelt.com é grátis para um texto por dia

Somente uma mensagem SMS gratuita por dia pode ser enviada por um remetente. Aqui está um exemplo das primeira e segunda tentativas em um dia:

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

Nota: Talvez você possa redefinir o endereço IP do seu roteador para mais de um texto por dia, mas ainda não o testei.

Você pode usar textos ilimitados pré-pagos. Existem muitos serviços de gateway SMS disponíveis. Os preços no link acima do fornecedor variam de US $ 0,03 a US $ 0,15 por texto. Isto é para referência e não para endosso ou recomendação. Faça sua lição de casa e procure fornecedores respeitáveis ​​de pagamento por serviço aos melhores preços.


Criar script bash

Você pode criar um script bash chamado smscontendo:

#!/bin/bash
curl -X POST https://textbelt.com/text --data-urlencode phone='$1' --data-urlencode message='$2' -d key=textbelt
  • Envie uma mensagem SMS usando sms 7801234567 "Hello World"
  • Obrigado Fabby por testar isso na UE e confirmar que funciona lá.

Enviar email para a operadora do smartphone com mensagem de texto SMS

Para o seguinte, tudo o que você precisa é de um navegador da Web como o FireFox, o Internet Explorer ou o Chrome. Não há necessidade de mergulhar nas entranhas do bash ou limitar-se a um texto livre por dia.

Muitas operadoras permitem que você envie uma mensagem de texto SMS para um smartphone endereçando um email para phone_number@mobile_provider_name.com.

Procure o número de telefone para obter o endereço do site da operadora

Para obter o endereço do site do provedor usando o número de telefone, acesse: https://freecarrierlookup.com/ . Imagine que inserimos o número de telefone 7801234567::

Taxa Carrier Lookup.png

É-nos dito que o endereço de e-mail a ser usado é [email protected]. Agora envie um email para este endereço e seu telefone tocará com uma notificação.

Obviamente, se você tiver seu smartphone configurado para tocar com uma notificação quando o e-mail chegar, basta enviar um e-mail para o seu telefone!

Interface CLI para enviar endereço de email

No Ask Ubuntu, existem muitas perguntas e respostas sobre como enviar email usando o bash. Estou usando ssmtp(Protocolo de Transporte de Correio Simples Seguro) nos meus cronbackups diários: faça backup da configuração, scripts e documentos do Linux no Gmail

Embora essa configuração seja para um usuário, você pode criar um arquivo com vários usuários para enviar mensagens de texto para:

Name         Email Address
Tiny Tim     5551234567@att.com
Mrs. Clause  5552223333@sprint.com
Bad Elf      5551114444@telus.net

Então, no seu código do bash, algo como isto :

ssmtp 5551234567@att.com < mail.txt

Onde mail.txtfica assim:

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>

Existem muitas maneiras de enviar email a partir do bash. isso é apenas um exemplo. O importante é que o endereço de email contenha o número do smartphone seguido pelo endereço da web do fornecedor do smartphone

WinEunuuchs2Unix
fonte
16
Também existem endereços de e-mail que você pode enviar para que a companhia telefônica encaminhe para o telefone como um texto.
22418 Kevin
11
O Skype pode enviar um SMS ou uma chamada telefônica de voz comum (o que fará o telefone emitir sons por mais tempo). Custa dinheiro, mas não muito. Talvez eles não cobrem uma ligação, você não atende (depois de encontrar o telefone) ;-) #
sudodus
2
Enviar texto via e-mail funciona. No entanto, você precisa conhecer a operadora que o destinatário da mensagem de texto usa. Atualmente, você pode determinar que via freecarrierlookup.com Você também receberá um endereço de e-mail para enviar uma mensagem SMS ou MMS. ou seja: [email protected] ... depois de obter o endereço de e-mail para o envio de texto, use a metodologia de e-mail que você desejar, desde o correio da linha de comando, o gmail, o thunderbird etc. para formatar a mensagem de texto e enviá-la .
TonyB
2
Sei que está além do escopo desta sessão de perguntas e respostas, mas, para enviar alertas para discos completos / RAM ou quaisquer outras falhas para usuários dedicados, não confiaria em um serviço que envia SMS uma vez por dia, mas, em vez disso, conecta um modem a um cartão SIM. Na Alemanha (Europa?), O CEP CT63 é bastante popular.
PerlDuck
11
"A maioria, senão todas as operadoras", são informações bastante localizadas. Por aqui (Holanda), não parece funcionar.
Mast
22

Esta resposta não é para linha de comando, pois não consigo encontrar uma solução de linha de comando para o Google.

Se você possui um telefone Android e não deseja usar a linha de comando, acesse https://www.google.com/android/find em um navegador da web e toque no telefone a partir daí, independentemente de silenciar, vibrar ou estar conectado a um fone de ouvido Bluetooth. Também não é necessário nenhum software extra no seu telefone. Isso também pode ser feito quantas vezes você desejar em um dia.

Terrance
fonte
4

Telefonema do navegador, usando o Google Hangouts

Você também pode localizar seu telefone ligando para ele, mesmo se não tiver um telefone fixo.

Pré-requisito: uma conta do Google

Nota: Apenas a maioria das chamadas para os EUA e Canadá é gratuita. Consulte https://www.google.com/voice/b/0/rates?p=hangout para obter tarifas.

  1. Acesse hangouts.google.com
  2. Clique no botão "Chamada telefônica":
    captura de tela do botão
  3. Clique em "Nova conversa":
    captura de tela do botão
  4. Digite seu número de telefone:
    captura de tela da caixa de entrada de número
  5. Clique em "Ligar":
    captura de tela do botão de chamada
Nonny Moose
fonte
Vejo $0.00ao lado do número de telefone para ligar. Você pode elaborar um custo para usar este serviço?
WinEunuuchs2Unix
Não funciona no meu país sem dinheiro na conta deles.
sudodus
11
@ WinEunuuchs2Unix Me desculpe! Esqueci que o Google Hangouts cobra por chamadas fora dos EUA e do Canadá. Atualizei minha resposta de acordo.
quer
@NonnyMoose Obrigado por atualizar. Eu já votei sua resposta antes do meu comentário.
WinEunuuchs2Unix
1

O jeito que eu fiz isso anos atrás foi me divertir com python e aprender a linguagem.

O que eu fiz foi:

  • Escreva algum código python que use o módulo smtp
  • Teste com o Gmail
  • Descobrir o endereço de email que mapeia para o meu número de telefone (consultou o email das três grandes operadoras em APIs de texto (na verdade elas são apenas um domínio de email em que o usuário é o número de telefone))
  • criar uma ferramenta de linha de comando
  • teste com meu número de telefone

E VOILA! mensagens de texto do bash.

Ps escrito a partir de um dispositivo móvel difícil de usar ... Se isso chamar mais atenção, eu poderia procurar no código antigo

Trevor Boyd Smith
fonte
4
Eu acho que python não é parte necessária aqui, use utilitários de correio unix para enviar mensagem.
val
11
Eu acho que isso é mais uma visão geral de uma resposta e as etapas / comandos importantes precisam seguir.
WinEunuuchs2Unix
11
@val usando em mailvez de escrever código python com smtp parece que você pode obter uma solução um pouco mais fácil e rápida. Basta fazer um script simples de shell bash que seria menor que as linhas de quinta-feira.
Trevor Boyd Smith
11
Esta resposta está faltando substância. “Como posso me enviar mensagens de texto via bash” - “Sim, usando python e gmail no meu telefone usando smtp” ... isso soa como uma resposta produtiva ou satisfatória para você?
vol7ron
Você notou na parte inferior "Ps escrito a partir de um dispositivo móvel difícil de usar". ||| Recriar as etapas não é muito difícil. Você está apenas enviando um email da linha de comando. O mailcomando seria mais rápido e fácil do que o código Python provavelmente.
Trevor Boyd Smith