Envoyer un SMS à partir de la ligne de commande

Lorsque vous pensez à envoyer des SMS, vous pensez probablement à l'iPhone ou à un Android, et la ligne de commande ne vous vient pas à l'esprit, mais grâce à la commande curl toujours utile, vous pouvez envoyer un SMS à n'importe quel téléphone numéro à partir du Terminal.

Oui, curl, le même outil de ligne de commande pour transférer des données vers et depuis des URL, télécharger des fichiers, obtenir des détails d'en-tête HTTP, et bien plus encore, peut envoyer des messages texte. Cela est effectué via une requête POST envoyée au service TextBelt, une API SMS sortante gratuite. Bien sûr, il y a des limites, mais ils sont assez généreux à 75 textes par jour (par IP), et vous ne pouvez pas envoyer un nombre de plus de 3 textes en trois minutes pour éviter les abus. En dehors de cela, gardez à l'esprit que vous serez facturé pour les SMS entrants au tarif SMS / texto régulier de votre fournisseur de cellulaire - cela n'utilise pas le service iMessage - donc ne l'utilisez pas si vous n'avez pas illimité plan de textos traditionnel.

Envoi d'un message texte à partir de la ligne de commande avec curl

La syntaxe de base à utiliser est la suivante, assurez-vous de remplacer le ########## avec votre propre numéro de téléphone à 10 chiffres (10 chiffres = code régional + numéro de téléphone), puis remplacez le message = texte par votre propre message à envoyer:

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

Par exemple, pour envoyer un texte disant "Bonjour d'OSXDaily.com" au numéro de téléphone 555-155-1555 (pas un nombre réel), vous utiliserez la chaîne de commande suivante:

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

Oui, vous pouvez mettre un autre numéro de téléphone, mais vous ne devriez probablement pas le faire sans leur permission.

Si le texte a été envoyé avec succès, la ligne de commande retournera un message indiquant '{"success": true}', s'il échoue pour une raison quelconque, il ressemblera à quelque chose comme ceci, ce qui indique généralement une erreur dans votre syntaxe de la commande: '{"success": false, "message": "Les paramètres de nombre et de message sont obligatoires."} curl: (6) Impossible de résoudre l'hôte:' Revoyez simplement la chaîne de commande et réessayez.

Le message texte devrait arriver très rapidement sur votre iPhone ou votre appareil Android, bien que l'opportunité du service dépende probablement de la file d'attente et de la quantité d'activité que TextBelt reçoit d'ailleurs. Ça va venir à travers quelque chose comme ça:

(Si vous vous demandez, répondre aux textes ne va nulle part et ne fait rien, ce n'est pas un service bidirectionnel)

Cela fonctionne pour envoyer des textes à partir de Mac OS X, Linux, et probablement tout autre système d'exploitation ou service ayant un accès curl. Le côté du destinataire devrait fonctionner avec n'importe quel téléphone mobile qui accepte le SMS, que ce soit un iPhone ou un ancien brique Nokia.

Ajout d'une commande rapide 'Envoyer le texte' à Bash

Si vous appréciez la commodité de vous envoyer des textes du terminal et prévoyez de l'utiliser souvent, vous pouvez créer un simple script bash pour raccourcir la chaîne de commande en ajoutant ce qui suit à votre fichier .bash_profile. Assurez-vous de remplacer le numéro avec votre numéro de téléphone à 10 chiffres:

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

Avec cela dans votre bash_profile, vous pouvez simplement taper "sendtext votre message va ici" pour vous envoyer un texte. Cela vous permet également de vous amuser et de vous servir des doubles ampersands &&, comme de vous envoyer des alertes SMS lorsqu'un logiciel est installé ou lorsqu'un fichier distant est téléchargé. Ceux qui ont une expérience en ligne de commande peuvent probablement penser à un million et un autre usage pratique pour cela.

Selon TextBelt, le service fonctionne parfaitement aux États-Unis avec les réseaux cellulaires suivants: Alltel, Ameritech, AT & T sans fil, Boost, CellularOne, Cingular, Sprint PCS, Telus Mobilité, T-Mobile, Metro PCS, Nextel, O2, Orange, Qwest, Rogers Sans-fil, US Cellular, Verizon, Virgin Mobile. Cela peut être limité aux États-Unis, mais nous ne sommes pas en mesure de tester des réseaux en dehors de la région. Faites-nous savoir si vous essayez ailleurs.