Envoyer un message texte 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 toujours utile commande curl, vous pouvez envoyer un SMS à n'importe quel téléphone directement depuis le 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 se fait via une requête 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 à 75 SMS par jour (par IP), et vous ne pouvez pas envoyer plus de 3 SMS en trois minutes pour éviter les abus. En dehors de cela, gardez à l'esprit que les SMS entrants vous seront facturés au tarif SMS / SMS standard de votre fournisseur de téléphonie mobile - cela n'utilise pas le service iMessage - alors n'en abusez pas si vous n'avez pas un 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 lepar 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 va ici "
Par exemple, pour envoyer un SMS disant "bonjour de OSXDaily.com" au numéro de téléphone 555-155-1555 (pas un vrai numéro), vous utiliserez la chaîne de commande suivante :
curl http://textbelt.com/text -d number=5551551555 -d message=bonjour de OSXDaily.com "
Oui, vous pouvez également 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 renverra un message indiquant '{"success":true}', s'il échoue pour une raison quelconque, il ressemblera à ce qui suit, qui indique généralement une erreur dans la syntaxe de votre commande : '{"success":false, "message": "Des paramètres de nombre et de message sont requis."} curl : (6) Impossible de résoudre l'hôte :' Vérifiez simplement la chaîne de commande et réessayer.
Le message texte devrait arriver très rapidement sur votre iPhone ou Android, bien que l'opportunité du service dépende probablement d'une file d'attente et de la quantité d'activité que TextBelt reçoit d'ailleurs. Cela ressemblera à quelque chose comme ceci :
(Si vous vous posez la question, répondre aux SMS ne mène nulle part et ne fait rien, ce n'est pas un service bidirectionnel)
Cela fonctionne pour envoyer des textes depuis Mac OS X, Linux et vraisemblablement tout autre système d'exploitation ou service ayant un accès curl. Le destinataire doit fonctionner avec n'importe quel téléphone mobile qui accepte les SMS, qu'il s'agisse d'un iPhone ou d'un ancien Nokia en brique.
Ajout d'une commande rapide "Envoyer du texte" à Bash
Si vous appréciez la commodité de vous envoyer des textes depuis le 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 .bash_profile. Assurez-vous de 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 envoyé; }"
Avec cela dans votre bash_profile, vous pouvez simplement taper "sendtext votre message va ici" pour envoyer un texte à vous-même. Cela permet également d'avoir du plaisir et de l'utilité avec les doubles esperluettes &&, comme l'envoi d'alertes SMS lorsqu'un progiciel a terminé l'installation ou lorsqu'un fichier distant est téléchargé. Ceux qui ont une expérience de la ligne de commande peuvent probablement penser à un million et une autre utilisation pratique pour cela également.
Selon TextBelt, le service fonctionne définitivement aux États-Unis avec les réseaux cellulaires 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. Cela peut être limité aux États-Unis, mais nous ne sommes pas en mesure de tester les réseaux en dehors de la région, faites-nous savoir si vous essayez ailleurs.