Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/01/2017, à 11:10

louis3d

[bash] Script pour envoi sms avec Gammu

Bonjour,
voici pour ceux que ça intéresse un petit script que j'utilise pour envoyer des sms depuis mon ordinateur :

#!/bin/bash
# Envoi sms avec Gammu
# https://forum.ubuntu-fr.org/profile.php?id=96984
# Dépendances nécessaires : gammu zenity
# Il faut avoir bien configuré son téléphone avec gammu auparavant
# par exemple "gammu identify" doit donner une réponse valide
# 
###########
# on commence par demander le numéro et le message 
# remplacez le numéro par le numéro du destinataire par défaut
numero0=`zenity --entry \
	--entry-text="0600000000" \
	--title="Numéro du destinataire" \
	--text="Veuillez rentrer le numéro du destinaire" 2>/dev/null`
	
# On enlève les espaces éventuels dans le numéro
numero=`echo "$numero0"|tr -d " "`

message=`zenity --entry \
	--entry-text="Bonjour" \
	--title="Texte du message" \
	--text="Veuillez rentrer le texte du sms" 2>/dev/null`

########################################################################
# si l'un des deux champs est vide on quitte
[[ (-z $numero) || (-z $message) ]] && echo "L'un des champs est vide" && exit 1

# sinon :
length=${#message} # longueur du message
logfile="$HOME/.scripts/Gammu/envoisms.log" # l'endroit où vous voulez stocker le résultat de l'envoi

############
# Si le message est assez court (moins de 160 car) on l'envoie :
if [ $length -lt 160 ]; then
	ZEDATE=`date +%Y-%m-%d_%H-%M-%S`
	gammu sendsms TEXT $numero -text "$message" && echo "$message" "--- envoyé le" $ZEDATE "à" $numero >> $logfile

############
# Sinon on le découpe et on l'envoie :
else
	maxlength=156
	sms_ary=()
	for ((i=0;i<${#message};i+=maxlength)); do
		sms_ary+=( "${message:i:maxlength}" )
	done
	
	# Les sms sont découpés et stockés dans sms_ary (merci http://stackoverflow.com/users/1815797/gniourf-gniourf)
	nbmess=${#sms_ary[*]}
	COUNTER=1
	
	printf "Message trop long. Nous allons l'envoyer en  %d parties \n" "${#sms_ary[@]}"

	for sms in "${sms_ary[@]}"; do
		compt=`echo $COUNTER "/" $nbmess | tr -d " "`
		mess_partiel=`echo "$sms" $compt`
		ZEDATE=`date +%Y-%m-%d_%H-%M-%S`
		gammu sendsms TEXT $numero -text "$mess_partiel" && echo "$mess_partiel" "--- envoyé le" $ZEDATE "à" $numero >> $logfile
		(( COUNTER++ )) 
	done
fi

Avec quelque modifications simples, on peut utiliser ce script pour envoyer des messages à plusieurs destinataires.
Voilà.

Dernière modification par louis3d (Le 27/01/2017, à 16:50)

Hors ligne

#2 Le 27/01/2017, à 11:12

louis3d

Re : [bash] Script pour envoi sms avec Gammu

Désolé mauvais classement : à déplacer dans "trucs astuces et scripts utiles".

Hors ligne

#3 Le 27/01/2017, à 12:07

charrier63

Re : [bash] Script pour envoi sms avec Gammu

Bonjour,
Dans ton script, tu as laissé apparaître un numéro de téléphone
il faudrait peut être modifier le script, en indiquant le lieu ou la personne qui utilise le script doit le modifier en éditant, et en mettant le numéro souhaité
Sinon ce numéro va rester sur le forum, et circuler partout, "les personnes qui vont récupérer le script", et le faire circuler pour donner le tuyau à d'autres personnes pour l'utiliser
On dirait en plus que c'est le numéro de l’expéditeur ? tout le monde va envoyer des SMS avec ce numéro ...

# on commence par demander le numéro et le message 
numero0=`zenity --entry \
	--entry-text="....................." \
	--title="Numéro du destinataire" \
	--text="Veuillez rentrer le numéro du destinaire" 2>/dev/null`

Sinon, merci bien, super astuce smile

Dernière modification par charrier63 (Le 27/01/2017, à 12:09)

Hors ligne

#4 Le 27/01/2017, à 16:49

louis3d

Re : [bash] Script pour envoi sms avec Gammu

Merci Charrier63, j'ai modifié ; en fait c'est le numéro par défaut du destinataire du message, qui s'affichera dans Zenity.

Hors ligne