#1 Le 31/08/2014, à 20:17
- mol1
[Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Bonjour !
Pour ceux qui sont chez Free coté téléphone, je me suis fait un petit script pour "m'envoyer" des sms depuis mon ordi avec l'API de Free. Bien pratique pour s'envoyer des notifications à la fin d'une commande longue par exemple, surtout quand on ne reste pas à coté du PC. Je propose donc ce script "à titre d'information" pour donner des idées à certains ^^
Tout d'abord, un petit article pour ceux qui ne connaissent pas.http://www.freenews.fr/spip.php?article14817
Mon mode opératoire : tout d'abord activer l'option chez free, ça parait logique :-)
Ensuite créer le fichier qui contiendra le script :
sudo touch /usr/games/sms
(pas forcément à cet endroit d'ailleurs, c'est le premier qui m'est venu en tête)
Ensuite :
sudo nano /usr/games/sms
Pour éditer votre fichier
Y coller :
yes "yes" | w3m -dump "https://smsapi.free-mobile.fr/sendmsg?user=VOTRE_IDENTIFIANT&pass=VOTRE_MPD&msg=$1"
Pour les valeurs de VOTRE_IDENTIFIANT et VOTRE_MDP elles se trouvent dans l'espace perso chez free
Enfin, créer un alias dans votre .bashrc
alias sms=/usr/games/sms
Petit test :
sms "Ceci est un test"
En espérant en aider, bonne journée ! :-)
Hors ligne
#2 Le 31/08/2014, à 21:02
- michel_04
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Bonjour,
Merci pour l'idée.
Je n'avais pas remarqué cette option.
Je viens de tester, génial.
Par contre j'ai ce message dans le terminal :
michel@Michel-E320:~$ sms "Ceci est un test"
unable to get local issuer certificate: accept? (y/n)Accept unsecure SSL session: unverified: unable to get local issuer certificate
michel@Michel-E320:~$
A+
:D
De la bonne manière de poser les questions - Trouver de l'aide grâce au Groupe des Parrains Linux - Le Pacte des Gnous
PCs sous Debian Stable & Debian Sid.
Hors ligne
#3 Le 31/08/2014, à 21:34
- cqfd93
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Bonsoir,
Merci pour le tuyau !
Après avoir installé w3m et rendu le fichier exécutable, j'ai pu m'envoyer un sms.
Y a-t-il moyen d'éviter ce message :
unable to get local issuer certificate: accept? (y/n)Accept unsecure SSL session: unverified: unable to get local issuer certificate
?
− cqfd93 −
En ligne
#4 Le 31/08/2014, à 21:40
- PPdM
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Je vais creuser, merci !
La critique est facile, mais l'art est difficile !
L'humanité étant ce qu'elle est, la liberté ne sera jamais un acquit, mais toujours un droit à défendre !
Pour résoudre un problème commence par poser les bonnes questions, la bonne solution en découlera
Hors ligne
#5 Le 05/09/2014, à 10:34
- joko
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
bonjour et merci mol1,
ça roxe !
petite question :
supposons qu'il y ait un émetteur humain (qui envoie le message via le script), il y a-t-il une possibilité pour le récepteur (qui a le téléphone) de lui répondre et que le récepteur puisse lire le message reçu (au travers quel logiciel et/ou script) ?
en tout cas, ça peut aider dans la vie courante...
Je suis un homme, quoi de plus naturel en somme ?
linux on the rocks
Hors ligne
#6 Le 29/09/2014, à 10:26
- cracolinux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Salut,
À quoi sert la commande yes ?
Je n'ai pas w3m sur ma machine et j'ai donc utilisé curl en remplacement :
curl --insecure "https://smsapi.free-mobile.fr/sendmsg?user=***&pass=***&msg=$1" && echo "ok" && exit 0
Peut-etre que yes est utile avec w3m ?
Merci pour l'info, ça peut être très utile.
Hors ligne
#7 Le 03/11/2014, à 10:48
- G-Tux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Bonjour,
Merci Mol1 pour l'info et la procédure, ainsi qu'au script de Cracolinux qui permettent d'utiliser cette fonction nouvelle chez Free mobile.
Elle offre beaucoup de possibilités, couplée avec cron c'est génial.
Dernière modification par G-Tux (Le 04/11/2014, à 13:59)
MSI CR70 Ubuntu 22.04 + Debian 12 (“Bookwom”) sous MATE
Raspberry Pi avec Raspbian
Hors ligne
#8 Le 06/11/2014, à 11:56
- Hizoka
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
merci à vous, je ne connaissais pas et ça peut être bien pratique !
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#9 Le 14/05/2015, à 11:45
- gipet77
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Merci à tous.
la commande CURL dans un batch fonctionne parfaitement. (ubuntu 14.04LTS)
Pré-requis : avoir un abonnement chez Free, et avoir activé l'option "notification par SMS".
curl --insecure "https://smsapi.free-mobile.fr/sendmsg?user=*******&pass=**********&msg=SMS%20envoye%20par%20robot%20Free%20!" && echo "ok" && exit 0
Dernière modification par gipet77 (Le 14/05/2015, à 13:28)
Hors ligne
#10 Le 14/05/2015, à 22:00
- metalux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Si ça peut servir à certains d'entre vous, voici un petit script bash:
#!/bin/bash
case $1 in
utilisateur)
NOM=xxxxxxxx
PASS=xxxxxxxxxxx
;;
utilisateur2)
NOM=xxxxxxxx
PASS=xxxxxxxxxxx
;;
utilisateur3)
NOM=xxxxxxxx
PASS=xxxxxxxxxxx
;;
*)
echo "Cet utilisateur n'existe pas" && exit 0
esac
envoi=$(curl -i --insecure "https://smsapi.free-mobile.fr/sendmsg?user=$NOM&pass=$PASS&msg=$2" 2>&1)
retour_HTTP=$(echo "$envoi" | awk '/HTTP/ {print $2}')
case $retour_HTTP in
200)
echo "Le message a été envoyé correctement"
;;
400)
echo "le couple expéditeur/mot de passe est erroné, veuillez les vérifier dans le script";;
402)
echo "Trop de SMS ont été envoyés en trop peu de temps. Veuillez renouveler ultérieurement";;
403)
echo "Le service n’est pas activé sur l’espace abonné. Veuillez l'activer S.V.P";;
500)
echo " Erreur côté serveur. Veuillez réessayez ultérieurement."
esac
exit 0
Il suffit de remplacer dans ce script utilisateur1,etc...par le nom ou prénom de votre choix, et de mettre comme NOM= l'identifiant free et pour PASS= le mot de passe associé. Il y a la possibilité d'ajouter autant d'utilisateurs que l'on souhaite en les mettant dans la boucle case/esac.
Nommer ce script sms, le rendre exécutable et le coller dans /usr/local/bin.
Pour l'utiliser, il suffit d'ouvrir un terminal et de taper la commande suivante:
sms utilisateur1 "message"
Bien mettre le message entre des doubles guillemets.
Limitation: Si vous utilisez le double-guillemet dans le message, il faudra l'échapper avec l'anti-slash:
Par exemple avec l'utilisateur mol1 :
sms mol1 "message avec des \"doubles guillemets\""
Le sms reçu sera: message avec des "doubles guillemets"
Les mots de passe étant en clair dans le script, prenez les mesures nécessaires pour interdire la lecture du script pour les autres utilisateurs si vous êtes sur un Pc partagé.
Dernière modification par metalux (Le 14/05/2015, à 22:01)
Hors ligne
#11 Le 20/05/2015, à 19:20
- cracolinux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Bien joué Metalux !
Hors ligne
#12 Le 25/01/2016, à 11:07
- G-Tux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Bonjour,
J'ai fait un script avec interface graphique (utilise zenity). Je débute, alors il y a certainement moyen de faire plus simple, mais ça marche.
En tête de fichier, il faut bien sûr adapter vos identifiants Free. Il est aussi possible d'ajouter plus de personnes.
#!/bin/bash
#Prérequis : curl, zenity et abonnement Free mobile avec option validée
log1=Pierre
log11=11111111
log111=aaaaaaaaaaaaaa
log2=Paul
log22=22222222
log222=bbbbbbbbbbbbbb
logA=$(zenity --entry --title "Envoi d'un SMS" --text="À qui voulez-vous l'envoyer ?" --entry-text=$log1 $log2);
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --warning --text="Pas de SMS, envoi annulé !" --timeout=2
exit
fi
echo "$logA" | grep $log1 >/dev/null
if [ "$?" = 0 ]; then
logB=$(zenity --forms --width=800 --title="Envoi d'un SMS à $logA" --text="Saisissez votre texte" --add-entry="SMS")
case $? in
0) curl --insecure "https://smsapi.free-mobile.fr/sendmsg?user=$log11&pass=$log111&msg=$logB" && zenity --notification --window-icon="info" --text="SMS envoyé à $logA !" && exit 0 ;;
1) zenity --warning --text="Pas de SMS, envoi annulé !" --timeout=2 ;;
-1) zenity --error --text="Une erreur inattendue est survenue !" --timeout=2 ;;
esac
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
fi
echo "$logA" | grep $log2 >/dev/null
if [ "$?" = 0 ]; then
logB=$(zenity --forms --width=800 --title="Envoi d'un SMS à $logA" --text="Saisissez votre texte" --add-entry="SMS")
case $? in
0) curl --insecure "https://smsapi.free-mobile.fr/sendmsg?user=$log22&pass=$log222&msg=$logB" && zenity --notification --window-icon="info" --text="SMS envoyé à $logA !" && exit 0 ;;
1) zenity --warning --text="Pas de SMS, envoi annulé !" --timeout=2 ;;
-1) zenity --error --text="Une erreur inattendue est survenue !" --timeout=2 ;;
esac
if [ "${PIPESTATUS[0]}" != "0" ]; then
exit
fi
fi
exit 0
Dernière modification par G-Tux (Le 03/02/2016, à 10:39)
MSI CR70 Ubuntu 22.04 + Debian 12 (“Bookwom”) sous MATE
Raspberry Pi avec Raspbian
Hors ligne
#13 Le 23/03/2016, à 14:24
- Sven27
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Bonjour à tous
j’aurai besoin d’un coup de main pour adapter cette fonction.
Ce que je cherche à faire c’est être notifié par SMS au démarrage de mon Raspberry (Jessie).
Sauf que je ne sais trop comment lancer ce script au boot.
Si quelqu’un passe par là et qu’il peut m’aider ce serait sympa.
Hors ligne
#14 Le 23/03/2016, à 18:08
- cracolinux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Salut,
Je te conseille de créer un script que tu appelles par exemple freesms :
#!/bin/bash
message=${*// /%20}
curl --insecure "https://smsapi.free-mobile.fr/sendmsg?user=xxx&pass=xxx&msg="$message""
Tu le remplis avec ça et tu le rends exécutable
Ensuite tu crées une ligne dans ton crontab via
sudo crontab -e
et tu colles ça dedans :
@reboot /home/you/mybinfolder/smsfree "Server has reboot"
Et normalement, c'est ok
Dernière modification par cracolinux (Le 23/03/2016, à 23:07)
Hors ligne
#15 Le 24/03/2016, à 13:36
- G-Tux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Bonjour,
Autre solution (pour les puristes moins élégante, mais... ), en ajoutant le chemin du script (freesms, comme l'a conseillé Cracolinux ) dans le fichier "rc.local" situé dans le répertoire "/etc". Dans ce fichier, tu ajoutes avant "exit 0" : /home/pi/freesms (par exemple, chemin à adapter en conséquence). Tu vérifies que "curl" soit bien installé, tu sauvegardes et tu relances. Le tout en administrateur.
Dernière modification par G-Tux (Le 24/03/2016, à 13:54)
MSI CR70 Ubuntu 22.04 + Debian 12 (“Bookwom”) sous MATE
Raspberry Pi avec Raspbian
Hors ligne
#16 Le 19/04/2016, à 21:35
- MacArony
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
salut, tres interessant j'ai fait des petits tests, un moyen d'avoir la meme chose mais avec une alerte de fail2ban ? par exemple ? ou avec le retour d'une commande ?
merci
Linux was fast enough on this machine. But in street racing parlance, with PC-BSD I’m burning rubber in all four gears.
Lenovo Yoga L380 : Elementary 7.0
HP Proliant N54L : OpenMediaVault 6
Apple Mac Mini 2009 : Catalina
Hors ligne
#17 Le 09/10/2016, à 09:45
- cracolinux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Salut à tous,
Je n'arrive pas à encoder tout les caractères accentués avec les codes d'échappement!!
Ça fonctionne avec {espace} = %20
mais par exemple avec {é} = %E9 , les {é} dans mon message son tronqués! est-ce que ça peut venir du téléphone ?
Hors ligne
#18 Le 09/10/2016, à 10:08
- Hizoka
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
cracolinux => Idem
Mais le teste en clair fonctionne très bien non ?!
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#19 Le 09/10/2016, à 10:12
- cracolinux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
bah non, je reçois pas les caractères accentués du tout, ni même l'espace si je ne l'encode pas comme il faut...
Hors ligne
#20 Le 09/10/2016, à 10:17
- cracolinux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Si ça marche chez quelqu'un je comprends pas...on peut pas avoir un é dans une URL de toute façon, n'est-ce pas ?
Hors ligne
#21 Le 09/10/2016, à 11:20
- Compte anonymisé
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
pour avoir é c'est %C3%A9
#22 Le 09/10/2016, à 16:53
- Hizoka
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
perso si je tape :
curl --insecure "https://smsapi.free-mobile.fr/sendmsg?user=XXXXXX&pass=XXXXXXXX&msg=éàçè oui NoN"
je reçois bien le message...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#23 Le 09/10/2016, à 17:49
- cracolinux
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
#!/bin/bash
if [ -n "$1" ]
then
message=${@}
else
if message=$(zenity --entry --title="Notification sms" --text="Saisir le sms")
then true
else exit 1
fi
fi
curl --insecure "https://smsapi.free-mobile.fr/sendmsg?user=XXXXX&pass=XXXXX&msg=${message}"
exit
Avec ce code, ça à l'air de vouloir passer mais pour une raison que j'ignore j'ai maintenant une box □ en tout début de message...c'est bien mystérieux tout ça
Hors ligne
#24 Le 13/11/2016, à 23:54
- ares
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Bonjour,
Merci à tous... pour le sujet
Comme je cherchais un script pour envoyer des messages plus long ; ma petite contribution très inspiré du topic !
Utile pour une liste de course, etc
Avec du "cosmétique" pour l'utilisateur
#!/bin/bash
#
# Source :
# forum Ubuntu : Envoyer un sms à son numéro (Free Mobile)
# https://forum.ubuntu-fr.org/viewtopic.php?id=1664551
##
# Ares (2016) Xubuntu 16.04 LTS
##
# * Saisir du texte dans la fenêtre
# * Convertire 'x0a' en 'html' = %0d%0a
# * Envoi du SMS
# * Si échec envoi ; notification de l'erreur
##
# options a adapter pour vous :)
# Exemple avec Xubuntu 16.04 LTS :
SmsGood="notify-send -t 200 -i /usr/share/icons/Adwaita/16x16/emblems/emblem-default.png"
SmsErreur="notify-send -t 500 -i /usr/share/icons/Adwaita/48x48/status/software-update-urgent.png"
# fin des options
##
# vos identifiants
FreeUser="1234567890" # utilisateur
FreePass="2AzErTy0" # votre mot de passe
##
# Début
#
if [ -n "$1" ]
then
message=${@}
else
if Saisie=$(zenity --text-info --editable --title="Envoi SMS" --width 300 --height 200 >Txt.tmp)
then true
sms=$(tr $'\x0a' $'\x0d' <Txt.tmp | sed "s/\x0d/%0d%0a/g")
else
$SmsErreur "Vous avez annulé l'opération !"
exit 1
fi
fi
# Envoi du SMS et...
# Code retour des réponses HTTP possibles
http_code=$(curl --insecure -G -o /dev/null -w "%{http_code}\n" "https://smsapi.free-mobile.fr/sendmsg?user=$FreeUser&pass=$FreePass&msg=$sms") # Réponse du serveur Free
case $http_code in
200) $SmsGood "`date`" "Le SMS a été envoyé sur votre mobile.";;
# Echec :(
400) $SmsErreur "Un des paramètres obligatoires est manquant.";;
402) $SmsErreur "Trop de SMS ont été envoyés en trop peu de temps.";;
403) $SmsErreur "L'option n'est pas activé sur l'espace abonné, ou login / clé incorrect.";;
500) $SmsErreur "Erreur côté serveur. Veuillez réessayez ultérieurement";;
*) $SmsErreur "Erreur !"
esac
rm -f Txt.tmp
exit
Vraiment sympa de corriger ou d'améliorer le script, @+
Le droit d'emmerder Dieu BNF
Hors ligne
#25 Le 14/11/2016, à 08:29
- Hizoka
Re : [Script/Bash] Envoyer un sms à son numéro (Free Mobile)
Ne laisse pas trainer ton mdp et login dans ton code
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne