Envoyer un SMS depuis la ligne de commande
Lorsque vous pensez à envoyer des messages texte, 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 message texte SMS à n'importe quel numéro de téléphone directement depuis le terminal.
Oui, curl, le même outil en 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 se fait par le biais d'une demande POST envoyée au service TextBelt, une API SMS sortante gratuite. Bien sûr, il y a des limites, mais elles sont assez généreuses avec 75 textes par jour (par IP), et vous ne pouvez pas envoyer un numéro plus de 3 textes en trois minutes pour éviter les abus. En outre, n'oubliez pas que vous serez facturé pour les SMS entrants au tarif normal de votre fournisseur de téléphonie mobile - celui-ci n'utilise pas le service iMessage - alors n'en abusez pas si vous n'avez pas de forfait SMS traditionnel illimité ;
Envoi d'un message texte de la ligne de commande avec boucle
La syntaxe de base à utiliser est la suivante : veillez à remplacer le ########## par votre propre numéro de téléphone à 10 chiffres (10 chiffres = indicatif 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 "hello de iphonologie.fr" ; au numéro de téléphone 555-155-1555 (pas un vrai numéro), vous utiliseriez la chaîne de commande suivante :
curl http://textbelt.com/text -d number=5551551555 -d "message=hello from iphonologie.fr" ;
Oui, vous pouvez aussi y mettre le numéro de téléphone d'une autre personne, mais vous ne devriez probablement pas le faire sans sa permission.
Si le texte a été envoyé avec succès, la ligne de commande renvoie le message suivant : "{"success":true}". En cas d'échec, quelle qu'en soit la raison, le message ressemble à ce qui suit, ce qui indique généralement une erreur dans la syntaxe de votre commande : "{"success":false,"message" : "Number and message parameters are required."} curl : (6) Could not resolve host:' Il suffit de revoir la chaîne de commande et d'essayer à nouveau.
Le message texte devrait arriver sur votre iPhone ou Android très rapidement, bien que la rapidité du service dépende probablement d'une file d'attente et de l'activité que TextBelt reçoit d'ailleurs. Le message ressemblera à ce qui suit :
(Si vous vous posez la question, répondre aux textes ne mène nulle part et ne fait rien, ce n'est pas un service à double sens)
Cela fonctionne pour envoyer des textes depuis Mac OS X, Linux, et probablement tout autre OS ou service ayant accès à curl. Le côté destinataire devrait fonctionner avec n'importe quel téléphone portable qui accepte les SMS, qu'il s'agisse d'un iPhone ou d'un Nokia en brique ancienne.
Ajout d'une commande rapide "Envoyer un texte" à Bash
Si vous appréciez la commodité de vous envoyer des textes depuis le terminal et que vous 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 .bash_profile. Veillez à remplacer le numéro par 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 permet également de s'amuser et de se servir de la double esperluette && ;, par exemple en s'envoyant des alertes par SMS lorsqu'un logiciel a fini d'être installé ou lorsqu'un fichier distant est téléchargé. Ceux qui ont l'expérience de la ligne de commande peuvent probablement penser à un million et une autre utilisation pratique pour cela aussi.
Selon TextBelt , le service fonctionne sans aucun doute aux États-Unis avec les réseaux de téléphonie mobile suivants : 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. Cette liste est peut-être limitée aux États-Unis, mais nous ne pouvons pas tester les réseaux en dehors de la région, faites-nous savoir si vous l'essayez ailleurs.