Table des matières
SMS-GATE
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.
Installation
Tout d'abord il faut télécharger, installer puis configurer l'application SMS-GATE.APP sur le téléphone Android :
- Télécharger l'application : sms-gate.app (le fichier .apk).
Si l'application n'est plus disponible, voici une copie sur mon propre serveur, on ne sait jamais…- Installer l'application.
- Appliquer les autorisations pour l'application SMSGate : sous Paramètres / Applis / SMSGate / Autorisations de l'application. Puis autoriser le Service SMS, ou alors, sous Autres Autorisations. (Il me semble que pour pouvoir autoriser l'envoi de SMS avec SMSGate il faut d'abord activer les autorisations restreintes, les manipulations peuvent varier selon les marques et les modèles des téléphones Android…)
- Lancer l'application SMSGate.
- Choisir le mode Local server.
- Définir un nom d'utilisateur et un mot de passe.
- Cliquer tout en bas sur ONLINE / OFFLINE pour respectivement, activer / désactiver l'application SMSGate.
- L'activation de SMSGate provoquera l'affichage des paramètres : adresse IP, port, utilisateur, mot de passe, etc…
- Noter l'adresse IP locale qui sera utilisée pour envoyer des SMS depuis n'importe quelle machine du même réseau local.
Envoi de SMS
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
Script Bash pour envoyer un SMS
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 :
- Le message à envoyer
- Et 1 à 9 numéros de téléphone du(des) destinataire(s).
(Tout paramètre supplémentaire sera simplement ignoré.)
On peut facilement adapter ou modifier le programme pour envoyer des SMS à plus de 9 destinataires…
- cg-SendSMS.sh
#!/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 :
- Télécharger le script cg-SendSMS.sh.
- Adapter la configuration selon votre réseau, les paramètres sont au début du fichier :
################## # PARAMETRES ##### ################## USER="???????????" PASS="???????????" IP="???.???.?.???" PORT="????" ##################
- Modifier les permissions pour autoriser l'exécution :
chmod +x cg-SendSMS.sh
- Puis lancer le programme, par exemple :
./cg-SendSMS.sh "Mon premier SMS avec le script de Cyril et SMSGate !" +33607080910
- Voilà, c'est tout !
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.
