Envoi de SMS en ligne de commande ou à l'aide de pages web et de Webhook avec SMS-GATE.APP.
SMSGate est une application open source pour Android qui permet d'envoyer des SMS grâce à une requête http POST. Très pratique pour l'automatisation, l'utilisation de l'IA ou encore l'intégration sous N8N.
Tout d'abord il faut télécharger, installer puis configurer l'application SMS-GATE.APP sur le téléphone Android :
Pour envoyer un SMS en ligne de commande sous Linux (avec la commande CURL) :
curl -X POST -u <UTILISATEUR>:<MOT-DE-PASSE> -H "Content-Type: application/json" \ -d '{ "textMessage": { "text": "Message de test SMSGate."}, \ "phoneNumbers": [ "+TEL1", "+TEL2", ... "+TELn" ] }' \ http://<ADRESSE-IP>:<PORT>/message
Par exemple, pour envoyer un SMS au numéro de téléphone 06.07.08.09.10,
si l'adresse IP du téléphone dans le réseau local est 192.168.1.123,
et en utilisant le port par défaut qui est 8080,
avec le nom d'utilisateur utilisateur et le mot de passe smsgate,
voici comment envoyer le message “Salut, ce SMS vient du robot !” :
curl -X POST -u utilisateur:smsgate -H "Content-Type: application/json" \ -d '{ "textMessage": { "text": "Salut, ce SMS vient du robot !"}, "phoneNumbers": [ "+33607080910" ] }' \ http://192.168.1.123:8080/message
Voici un petit programme BASH que j'ai écrit pour envoyer un SMS sous Linux en ligne de commande :
Le programme nécessite au moins 2 et au maximum 10 paramètres :
(Tout paramètre supplémentaire sera simplement ignoré.)
On peut facilement adapter ou modifier le programme pour envoyer des SMS à plus de 9 destinataires…
#!/bin/bash # # cg-SendSMS.sh # Envoi de SMS avec sms-gate.app Android. # # Syntaxe : cg-SendSMS.sh "Message a envoyer" No_Tel [ [No_Tel2] [No_Tel3] ... [No_Tel9] ]" # Exemple : cg-SendSMS.sh "Message de test." +33607080910 +33611121314 +3361516171819 # # Cyril GREWIS, le 12-02-2026. ################## # PARAMETRES ##### ################## USER="utilisateur" PASS="smsgate" IP="192.168.1.123" PORT="8080" ################## MESG=${1} NUM1=${2} NUM2=${3} NUM3=${4} NUM4=${5} NUM5=${6} NUM6=${7} NUM7=${8} NUM8=${9} NUM9=${10} if [ "${NUM1}" == "" ]; then echo "Erreur, parametres manquants !" echo "Utilisation de $0 :" echo "$0 \"Message a envoyer\" No_Tel [ [No_Tel2] [No_Tel3] ... [No_Tel9] ]" exit 0 fi echo "Ok, parametres corrects, on envoi le message..." echo "MESSAGE : $MESG" echo "NUMEROS : $NUM1 $NUM2 $NUM3 $NUM4 $NUM5 $NUM6 $NUM7 $NUM8 $NUM9" DESTINATAIRES="\"${NUM1}\"" for NUM in $(echo $NUM2 $NUM3 $NUM4 $NUM5 $NUM6 $NUM7 $NUM8 $NUM9); do DESTINATAIRES="$DESTINATAIRES, \"$NUM\"" done DESTINATAIRES="[ $DESTINATAIRES ]" TXT="{ \"textMessage\": { \"text\": \"$MESG\"}, \"phoneNumbers\": $DESTINATAIRES }" curl -X POST -u $USER:$PASS -H "Content-Type: application/json" -d "$TXT" http://$IP:$PORT/message RES=$? echo "" if [ $RES == 0 ]; then echo "Ok, message envoyé à l'application SMSGate." else echo "PROBLEME, message non envoyé, une erreur s'est produite !" echo "Vérifiez le message d'erreur juste avant ce message." fi exit 0
Pour l'utiliser :
################## # PARAMETRES ##### ################## USER="???????????" PASS="???????????" IP="???.???.?.???" PORT="????" ##################
chmod +x cg-SendSMS.sh
./cg-SendSMS.sh "Mon premier SMS avec le script de Cyril et SMSGate !" +33607080910
Pour toute question, remarque ou suggestion vous pouvez me joindre grâce au chat en live lorsque je suis en ligne ou en me laissant un message si je suis ailleurs ! (⇒ Popup en bas à droite de la page… ⇓)
Cyril G.