Abavala !!!

Notifications : utiliser Google pour envoyer un SMS à la réception d’un mail

Suite à la fin du service de notifications Pushme.to, je continue à explorer les différentes solutions que l’on peut avoir afin de pouvoir être averti gratuitement d’une alerte domotique ou autre.  Aujourd’hui je vais vous présenter une astuce proposée par Romain Vialard. Elle consiste à utiliser l’alerte venant d’un mail reçu dans sa messagerie Gmail pour l’envoyer par SMS en utilisant les services de Google Calendar le tout orchestré par Google Drive.  Ne vous fiez pas aux apparences, la mise en place très simple prend moins de 5 minutes!

Comment ça marche?

Avec cette méthode, vous pourrez être informés à chaque fois que vous recevrez un mail important dans votre messagerie Gmail.  Elle utilise la fonctionnalité proposée gratuitement par Google Calendar qui consiste à envoyer un rappel par SMS pour un rendez-vous à venir.  Cette fonctionnalité a déjà été utilisée comme par exemple avec un serveur domotique Vera.  Les rendez-vous sont placés automatiquement dans le calendrier et cette fonctionnalité est détournée pour notre plus grand plaisir.

La cinématique est la suivante:

  1. un mail arrive dans votre boîte aux lettres
  2. A la réception de votre mail, il est déclaré important par le filtre mis en place dans Gmail si les critères paramétrés dans le filtre correspondent aux caractéristiques de votre mail (émetteur, mots dans le sujet ou dans le corps du message…)
  3. Un Script tournant dans Google Drive le traite et insère un évènement correspondant dans votre calendrier dans Google Agenda. Cet évènement a un rappel d’échéance par SMS.

Tout cela bien entendu sans que vous ayez à intervenir!  Sauf bien évidemment pour la mise en place.

Gardez en mémoire qu’il est fort probable qu’il y ait tout de même une limite au nombre de notifications par SMS que vous pouvez recevoir chaque jour. Cette limite ne devrait pas affecter la plupart des utilisateurs, mais c’est quelque chose à garder à l’esprit si vous avez programmé un grand nombre d’événements et que vous ne recevez plus de notifications par SMS.

Le guide ci-dessous suppose que vous avez déjà un compte Google, que vous avez activé votre compte Google Calendar (ou Agenda en français), que vous avez une adresse Gmail et que vous avez activé le service Google Drive (anciennement Google Docs).

Mise en œuvre

Et maintenant suivez le guide:

  • Dans Gmail, créer un filtre qui mettra le libellé “Envoi SMS” sur les mails importants que vous recevrez.  Dans mon exemple ces mails importants sont ceux qui viennent d’une adresse spécifique et qui contiennent le mot “Alerte” dans le corps du message.

  • A ce stade afin de valider le filtre, s’envoyer un mail correspondant aux critères dudit filtre.
  • Dans Google Drive, créer un script : Créer => Plus => Script

  • Copier/Coller le code suivant dans le script créé:
function EnvoiSMS() {
  var label = GmailApp.getUserLabelByName('Envoi SMS');
  var threads = label.getThreads();
  var now = new Date().getTime();
  for(i in threads){
    CalendarApp.createEvent('DOMO- '+threads[i].getFirstMessageSubject(), new Date(now+60000), new Date(now+60000)).addSmsReminder(0);
    threads[i].moveToTrash();
  }

  label.removeFromThreads(threads);
}
  • Enregistrer le script

  • Cliquer sur l’icône “Exécuter”.  Une fenêtre d’avertissement s’ouvre alors pour vous demander l’autorisation pour que ce script ait accès aux services Gmail et Google Calendar
  • Cliquer sur le bouton “Autoriser”
  • Cliquer à nouveau sur l’icône “Exécuter”.
  • Après une minute vous devriez recevoir un SMS avec le sujet du mail que vous avez écrit un peu plus haut.

On voit que ça marche.  Il ne nous reste plus qu’à programmer cette tâche afin qu’elle s’exécute automatiquement : il faut l’ordonnancer. Là encore, on fait appel aux services de Google Drive afin de lui permettre de s’exécuter tous les jours, toutes les heures ou encore toutes les minutes.  C’est au choix.

Pour l’ordonnancer le script, poursuivez le guide!

  • Dans Google Drive, dans l’éditeur de Scripts, cliquer sur la petite icône en forme de montre : “Déclencheurs du script actuel…”

  • Cliquer sur le lien “Aucun déclencheur configuré. Cliquez ici pour en ajouter un.” Sélectionner d’exécuter la fonction “EnvoiSMS” en “Fonction du temps” en choisissant le “Minuteur” positionné à la valeur “Chaque minute” par exemple.

  • Appuyer sur le bouton “Enregistrer”.

C’est fini!

Quelques explications

Il faut savoir que toute l’intelligence se situe dans le filtre créé et maintenu par vous dans Gmail.  L’envoi des SMS est assuré par Google Calendar.  Le script créé et ordonnancé n’est utilisé que pour permettra aux 2 services de discuter ensemble.

Le script créé prendra maintenant en compte les mails qui auront été estampillées par le libellé “Envoi SMS” par le filtre de réception.  Pour chacun de vos messages ainsi identifiés, un événement est automatiquement inséré dans votre calendrier en lui spécifiant qu’il faut qu’il y ait un rappel automatique par SMS une minute avant que l’évènement n’arrive.  Comme l’évènement a été créé pour démarrer dans une minute… le SMS vous est envoyé tout de suite!  Le script termine enfin son travail en retirant le libellé “Envoi SMS” des messages traités.

Conclusion

Vous voici maintenant dotés d’un outil vous permettant d’envoyer des SMS gratuitement lorsque vous recevez un mail attendu. Vous pourrez l’utiliser par exemple pour être averti par SMS des messages laissés sur votre répondeur par exemple en diminuant le délai de 15 munites demandé par IFTTT.  Il peut également servir pour relayer toute alerte reçue par un système qui ne peut qu’émettre des mails.

Faites-en bon usage!

Source: Google Developers