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 :

  1. Télécharger l'application : sms-gate.app (le fichier .apk).
  2. :!: Si l'application n'est plus disponible, voici une copie sur mon propre serveur, on ne sait jamais…
  3. Installer l'application.
  4. 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…)
  5. Lancer l'application SMSGate.
  6. Choisir le mode Local server.
  7. Définir un nom d'utilisateur et un mot de passe.
  8. Cliquer tout en bas sur ONLINE / OFFLINE pour respectivement, activer / désactiver l'application SMSGate.
  9. L'activation de SMSGate provoquera l'affichage des paramètres : adresse IP, port, utilisateur, mot de passe, etc…
  10. 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 :

  1. Le message à envoyer
  2. 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 :

  1. Télécharger le script cg-SendSMS.sh.
  2. Adapter la configuration selon votre réseau, les paramètres sont au début du fichier :
    ##################
    # PARAMETRES #####
    ##################
    USER="???????????"
    PASS="???????????"
    IP="???.???.?.???"
    PORT="????"
    ##################
  3. Modifier les permissions pour autoriser l'exécution :
    chmod +x cg-SendSMS.sh
  4. Puis lancer le programme, par exemple :
    ./cg-SendSMS.sh "Mon premier SMS avec le script de Cyril et SMSGate !" +33607080910
  5. 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.



[ Adresse Bitcoin pour les dons BTC : 1KCZGe7PtxwaWEJf1dHcoqsxbrzypNTvEw ]