Notifications : utiliser Google pour envoyer un SMS à la réception d’un mail5 minute(s) de lecture

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

91 Comments

  1. Christian said:

    Il y a bien plus simple… avec l’appli iOS “Push” on reçois une adresse mail spécifique et il suffit de faire envoyer un mail par la box à cette adresse et le mail se transforme en notification push sur l’iPhone.

    mardi 13 novembre 2012
    Reply
    • Hervé Hervé said:

      L’appli iOS PUSH marche tout a fait pour les besoins de notifications pour les ibidules. L’idée était d’apporter une solution entièrement gratuite.

      lundi 19 novembre 2012
      Reply
  2. rezomaison said:

    l’intérêt est dans cette fonctionnalité de script sur GDRIVE que je n’avais pas encore découverte.
    merci pour cette info
    JF

    mardi 13 novembre 2012
    Reply
  3. yanker said:

    merci pour cette fonctionnalité de gdrive … maintenant je vais regarder de plus près les fonctionnalités de gdrive. merci bien

    mardi 13 novembre 2012
    Reply
  4. Stephane said:

    Pour être alerté en temps réel avec le service IFTTT (sans les 15 minutes de délai), il suffit d’utiliser le service de trigger. (trigger@ifttt.com recu de votre mail). Par exemple, pour une cam IP qui envoie un mail d’alerte sur ce trigger, je reçois un SMS dans la seconde !

    mercredi 14 novembre 2012
    Reply
    • Hervé Hervé said:

      Le souci est que l’on n’est pas toujours maître de l’adresse mail qui envoi. Si j’ai bien compris le principe il faut que l’expéditeur soit sa propre adresse mail c’est ça? Par contre pour l’exemple de la caméra IP c’est bien vu!

      lundi 19 novembre 2012
      Reply
    • baf said:

      Stephane ,
      peux-tu m’expliquer comment utiliser le service trigger, j’ai aussi une camera IP mais qui m’envoie une simple alerte sur mon mail avec 2-3 clichés..comment peut-on recevoir cela directement par sms dans la seconde ? merci

      lundi 10 décembre 2012
      Reply
    • jd said:

      stephane, suite à votre intervention sur ce site, merci de me preciser comment faire pour recevoir la notification ou le message dans la seconde ??? de mon coté il se passe bien 5 min .. dans l’attente de votre retour… merci bcp

      lundi 13 octobre 2014
      Reply
  5. toniolol said:

    Bonjour,
    merci pour cette explication très utile !

    Je viens de trouver qu’il est très simple d’écrire vers l’agenda de son choix avec getCalendarsByName().

    Par contre quand j’ai deux (ou plus de mails) taggués ça ne fonctionne pas car le sujet lu est toujours le premier :
    threads[0].getFirstMessageSubject();

    En remplaçant 0 par i tout fonctionne 😉

    mercredi 14 novembre 2012
    Reply
    • Hervé Hervé said:

      Je corrige dans le script à copier/coller. Merci!

      lundi 19 novembre 2012
      Reply
      • toniolol said:

        De rien, ce système est génial, merci de l’avoir présenté !
        J’ai modifié un peu le script exemple sur mon blog et voici un lien bien utile pour chercher avec précision un mail dans sa boîte gmail avec la fonction GmailApp.search : http://goo.gl/9Yc5X

        jeudi 22 novembre 2012
        Reply
  6. Clément said:

    Penses-tu qu’il est possible de gérer dynamiquement de numéro de téléphone de destination ?

    lundi 14 janvier 2013
    Reply
    • Hervé Hervé said:

      Bonjour Clément,
      Je ne pense pas que ce soit possible. Je n’ai rien trouvé en tout cas qui permette de le faire…

      mardi 15 janvier 2013
      Reply
  7. catherine said:

    Je n’ai pas réussi à configurer l’alerte correctement, j’ai plusieurs calendriers dans google agenda, est-ce que ça pose un problème? est-ce que normalement on doit voir l’alerte dans l’agenda ? Hervé si tu peux m’aider à finir ma config je t’en serais reconnaissante.
    merci

    samedi 2 février 2013
    Reply
  8. Cisco said:

    ça marche très bien, mais je reçois toujours 2 sms, sans pouvoir corriger ce double envoi,

    par ailleurs, j’aimerai aussi recevoir le nom de l’expéditeur du mail reçu,

    merci de votre aide !

    mercredi 20 février 2013
    Reply
    • Hervé Hervé said:

      Concernant le double envoi, j’imagine que tu as vérifié que le mail était en un seul exemplaire…
      Il me semble que j’avais eu ce souci et que j’avais une option dans les paramètres de l’agenda qui demandait qu’un SMS me soit envoyé en rappel du rendez-vous. Cette option dans le paramétrage de l’agenda + le code de notification fait que je les recevait en double…

      mercredi 20 février 2013
      Reply
  9. Lecaptaine said:

    Salut,
    Cela fonctionne parfaitement, mais j’ai moi aussi le double envoi et je n’ai pas trouvé de solution.
    Si vous avez un tuyau, merci de partager……
    @+

    mercredi 27 février 2013
    Reply
  10. Seb said:

    bonjour, pour moi ca ne focntionne pas, ca m’ecris “Type error : impossible d’appeler la methodee “getThreads” de null ( ligne 5 fichier “code””.

    Quest ce que j’ai mal fait ?

    vendredi 29 mars 2013
    Reply
    • nando8191 said:

      salut seb moi aussi j’avais la même erreur et c’est parce que le libelle créer ne correspondait pas au script.
      j’avais enregistre envoie SMS avec un e et pas envoi SMS.
      et j’ai aussi changer dans la formule il faut mettre des guillemets.
      a “envoi sms” et a “DOMO”.
      voila j’espère que cela va aider.

      mardi 6 août 2013
      Reply
  11. Jonathan said:

    @seb, j’ai également cet erreur mais tout fonctionne quand même

    vendredi 5 avril 2013
    Reply
  12. Alain said:

    Bonjour, j ai bien réussi de suivre le tuto, et c est parfait!!

    Seul problème, je reçois chaque fois 4 SMS…

    Help, merci. !!!

    jeudi 9 mai 2013
    Reply
  13. gab said:

    Bonjour,

    le système fonctionne chez moi néanmoins le sms m’affiche “DOMO” ?

    est-ce qu’il est possible (non seulement de recevoir une notification) mais aussi le lire le contenu du mail sur le sms recuy= ?
    merci

    samedi 25 mai 2013
    Reply
  14. Kady said:

    Bonjour,
    Je trouve la solution super, je vais l’essayer des que je reçois ma caméra ip pour réaliser de la surveillance. Par contre il est très simple pour un voleur de couper le fil téléphonique avant de rentrer dans une maison. Est il possible de réaliser par le même procédé une vérification de liaison par l’intermédiaire d’un ping toute les heures et si problèmes envoyer un sms via mail?

    lundi 3 juin 2013
    Reply
  15. J1 said:

    Excellent ça !!! Ca faisait longtemps que je cherchais à faire ça, mais je n’avais pas pensé à Drive !

    Par contre j’aimerais bien que les évènements créés par le script soient créés dans un agenda particulier… Là ils sont créés dans mon agenda principal, au milieu de mes rdv, etc… Pas très pratique ! Ce que je voudrais c’est que les évènements soient créés dans un agenda particulier, par exemple appelé ‘SMS’, que j’afficherai/synchroniserai ou non dans l’interface Google Agenda ou sur mon téléphone. Si quelqu’un a la solution ce serait parfait !

    mercredi 5 juin 2013
    Reply
    • J1 said:

      PS : je précise que j’ai bien vu le message de toniolol, mais je n’ai pas réussi à l’appliquer… :s

      mercredi 5 juin 2013
      Reply
      • J1 said:

        En fait c’est bon j’ai réussi ! Merci beaucoup pour ces astuces ! 😀

        mercredi 5 juin 2013
        Reply
        • Hervé Hervé said:

          Cool! Heureux que tu ais réussi à faire la mise en oeuvre.

          lundi 10 juin 2013
          Reply
  16. Bernard said:

    Merci pour ce tuto
    Je ne sais pas si Google a changé quelque chose, mais en ayant suivi scrupuleusement les explications, je ne recois pas de SMS. Le mail oui, mais pas de SMS.

    mercredi 26 juin 2013
    Reply
  17. arbiel.perlacremaz said:

    Bonsoir

    Merci pour ce script extrêmement pratique. La seule petite difficulté rencontrée a été de trouver comment écrire le script. Il n’y a en effet pas de bouton dans Drive pour cela. Personnellement, je suis passé par Google Documents > feuille de calcul > créer un script
    pour me retrouver dans des pages qui m’ont conduit à Google Scripts.

    Arbiel

    vendredi 19 juillet 2013
    Reply
    • Hervé Hervé said:

      S’il n’y a pas de boutons il faut le faire afficher.
      Dans “Créer” choisir “Connecter plus d’applications”. Parmi les options disponibles tu devrais trouver “Script in Google Drive”. Le bouton est ainsi installé pour les prochains besoins!
      Cela dit ta solution permet d’arriver à ses fins.

      lundi 22 juillet 2013
      Reply
  18. Seb said:

    Ce script fonctionne très bien, félicitation mais j’ai un problème, je teste en ce moment avec un mail et un check toutes les 10 minutes…

    Si je ne supprime pas le mail, je reçois un sms même si j’en avais déjà reçu un… Il n’y a pas un moyen de ne pas recevoir de SMS si celui ci à déjà été envoyé (sans effacer les mails reçus) ?

    lundi 22 juillet 2013
    Reply
  19. jorka57 said:

    J’ai trouvé pour les envoies répétitifs.
    Il faut mettre l’email reçu dans la corbeille et du coup il ne sera plus traité.

    Alors dans le script il suffit simplement de faire effacer cet email en rajoutant :

    for(i in threads){
    CalendarApp.createEvent(‘DOMO : ‘+threads[i].getFirstMessageSubject(), new Date(now+60000), new Date(now+60000)).addSmsReminder(0);
    threads[i].moveToTrash();
    }

    Voilà ++

    mardi 30 juillet 2013
    Reply
    • Hervé Hervé said:

      Merci! J’ai mis la suppression du mail en place. Je vais voir à l’usage.

      mercredi 31 juillet 2013
      Reply
  20. nando8191 said:

    bonjour,je ne parvient pas a recevoir le moindre sms,car il me dit que j’ai une erreur voici le code que j’ai mis en copier coller si quelqu’un peut m aider c’est pour recevoir les alertes camera ip immédiatement. merci d’avance

    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);

    }

    label.removeFromThreads(threads);

    }
    voici l’erreur.

    TypeError: Impossible d’appeler la méthode “getThreads” de null. (ligne 5, fichier “Code”)

    mercredi 31 juillet 2013
    Reply
    • nando8191 said:

      resolu merci

      samedi 3 août 2013
      Reply
    • wallass said:

      bonjour,

      idem pour moi, pourriez vous me donner la solution

      merci

      mardi 24 septembre 2013
      Reply
    • seize said:

      Bonjour
      Moi j’ai le même problème
      TypeError: Impossible d’appeler la méthode « getThreads » de null. (ligne 5, fichier « Code »)

      Y a t-il une solution de de corrections??

      lundi 31 mars 2014
      Reply
  21. eric said:

    Bonjour, ce script est vraiment super. Curieusement, je reçois aussi 2 sms malgré l’astuce de jorka57.

    vendredi 2 août 2013
    Reply
  22. nando8191 said:

    bonjour,moi aussi je reçoit 2 SMS malgré l’astuce de jorka57.
    quelqu’un a une solution.

    merci a vous tous.
    nando8191

    mardi 6 août 2013
    Reply
    • Philippe said:

      La réponse a été donnée par Hervé plus haut :
      « Il me semble que j’avais eu ce souci et que j’avais une option dans les paramètres de l’agenda qui demandait qu’un SMS me soit envoyé en rappel du rendez-vous. Cette option dans le paramétrage de l’agenda + le code de notification fait que je les recevait en double… »
      Il suffit donc de le supprimer dans l’onglet Rappels et Notifications.

      vendredi 23 août 2013
      Reply
    • djoey33 said:

      Moi aussi je reçois 2 SMS (comme vous eric et nando8191).
      Un premier après environ 1min30sec après la réception du mail.
      Un second 1 minute après le premier SMS.

      Avez-vous trouvez la solution pour ne pas recevoir le deuxième SMS ?
      Et le délai d’1min30sec pour recevoir le premier SMS est-il normal ? Vous êtes dans le même cas ?

      PS: Je n’ai pas trouvé de notification SMS active dans les options de Google Calendar.

      mardi 17 décembre 2013
      Reply
  23. Sidonie said:

    Super, çà marche impeccable. Merci

    dimanche 1 septembre 2013
    Reply
  24. thierry said:

    bonjour,
    super le script !
    est ce que quelqu’un sait comment on pourrait aussi rajouter le début du mail (en profitant des 160 caractéres du sms de notification). J’ai essayé en rajoutant ceci :

    CalendarApp.createEvent(threads[i].getFirstMessageSubject()+
    threads[i].getPlainBody(), new Date(v_maint+60000), new Date(v_maint+60000)).addSmsReminder(0);

    }

    Mais ça ne fonctionne pas ! Help !

    mercredi 4 septembre 2013
    Reply
  25. Sidonie said:

    Bonjour,

    J’ai reçu ce matin un récapitulatif des erreurs scripts :
    Connexion à Gmail impossible. (ligne 3, fichier “Code”) comptage 4

    Erreurs ayant eu lieu hier matin entre 8h et 8h15. Est-ce juste dû à une inaccessibilité de Gmail dû à un problème interne de Gmail ?

    Merci

    jeudi 5 septembre 2013
    Reply
    • Hervé Hervé said:

      Bonjour,
      J’en reçoit également de temps en temps. Je ne peux pas dire si le souci vient de Gmail ou autre chose. On peut penser également à un quota alloué par Google aux programmes exécutés par les utilisateurs sur ses serveurs…

      jeudi 5 septembre 2013
      Reply
  26. Sidonie said:

    ok, merci

    jeudi 5 septembre 2013
    Reply
  27. wallass said:

    bonjour,je ne parvient pas a recevoir le moindre sms,car il me dit que j’ai une erreur voici le code que j’ai mis en copier coller si quelqu’un peut m aider c’est pour recevoir les alertes camera ip immédiatement. merci d’avance

    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);

    }

    label.removeFromThreads(threads);

    }
    voici l’erreur.

    TypeError: Impossible d’appeler la méthode « getThreads » de null. (ligne 5, fichier « Code »)

    mardi 24 septembre 2013
    Reply
  28. sébastien said:

    ca ne fonctionne toujours pas, à savoir:

    je n’ai pas de message d’erreur (déjà c’est pas mal) mais je ne reçois des sms que lorsque j’interroge mon adresse mail. le truc qui sert à rien!
    ca prouve bien que les sms passent mais uniquement si je v voir moi même mes mails! complêtement inutile sauf pour être encombrer de sms arrivés trop tard.

    ps: j’ai bien tout fais comme qui dit: envoi sms à chaque minute etc… mais a marche pas (enfin trop tard)

    mardi 1 octobre 2013
    Reply
  29. Hervé Hervé said:

    J’ai remis le code en ligne dans l’article. Il n’a pas changé mais est mis en forme différemment car je soupçonne un problème lors du copier/coller. Pourriez-vous retenter?

    mercredi 2 octobre 2013
    Reply
  30. astroïd said:

    Bonjour,
    Vraiment très utile. Merci pour votre tuto et script très clair.
    On aime trouver des howto comme cela sur le web.

    vendredi 25 octobre 2013
    Reply
    • Hervé Hervé said:

      Merci pour ce message d’encouragement! 🙂

      vendredi 25 octobre 2013
      Reply
  31. Alors là, j’applaudis des 2 mains (et des 2 pieds… 🙂 ).

    Merci pour cette astuce. Depuis des années, je payais une passerelle SMS pour me fournir ce genre de service (pour de la surveillance de serveur web). Et là, avec ce script et la bonté de sieur Google, c’est gratos.

    Tout marche nikel ! Merci encore.

    mercredi 6 novembre 2013
    Reply
  32. stephan david said:

    j’ai le meme probleme que certains mais pas la solution
    merci de votre aide

    TypeError: Impossible d’appeler la méthode « getThreads » de null. (ligne 5, fichier « Code »)

    lundi 2 décembre 2013
    Reply
    • stephan david said:

      resolu, problème de nom de libellé … merci pour ce script

      lundi 2 décembre 2013
      Reply
  33. Robin said:

    Bonsoir,
    j’ai tout fait plusieurs fois, j’ai revu chaque détail et pourtant en test je reçois toujours ces mots clefs dans “Boite de réception” et non pas dans “Envoi SMS”, quelque peut-il m’aider svp, merci.

    dimanche 15 décembre 2013
    Reply
  34. djoey33 said:

    Moi aussi je reçois 2 SMS (comme vous eric et nando8191).
    Un premier après environ 1min30sec après la réception du mail.
    Un second 1 minute après le premier SMS.

    Avez-vous trouvez la solution pour ne pas recevoir le deuxième SMS ?
    Et le délai d’1min30sec pour recevoir le premier SMS est-il normal ? Vous êtes dans le même cas ?

    PS: Je n’ai pas trouvé de notification SMS active dans les options de Google Calendar.

    mardi 17 décembre 2013
    Reply
    • fredo95 said:

      bonsoir
      dans agenda,
      paramètres
      agenda
      sous notifications:rappel et notifications
      aucun rappel défini..
      j’avais le même problème et maintenant tout est OK.
      Joyeux Noël à tous

      mardi 24 décembre 2013
      Reply
  35. goelois said:

    Bonjour et merci pour cette excellente procédure.
    Malheureusement je suis bloqué à l’étape créer un script.
    lorsque j’ouvre Google drive ,en dessous de créer j’ai:
    mon drive
    partager avec moi
    suivis
    récents
    corbeille
    plus.

    si je clique sur plus il n’y a pas la ligne pour créer un script.
    puis-je avoir de l’aide svp?

    dimanche 29 décembre 2013
    Reply
  36. Francis said:

    Bonjour,

    super, j’ai juste quelques remarques/questions :
    – Je ne vois pas l’interet d’avoir ajouter le “moveToTrash()”, en effet, la dernière commande “label.removeFromThreads(threads);” enleve le libellé qui avait été posé en début de script, donc il n’y a pas de raison que l’on soit alerté indéfiniment du mail (le filtre pose un libellé, le script envoie un sms pour tous les mails avec ce libellé et enlève le libellé).
    – en ce qui concerne la réception de 2 sms, ce sont en effet les notification qui en sont la cause mais se passé des notifications (pour les vrai RDV) serait dommage… Je pense que l’idée est donc bien (comme évoqué plus haut par toniolol et J1) de créer ces événements dans un agenda spécifique… et d’enlever les notifications uniquement pour cet agenda.

    – Comme toniolol et J1 ne nous ont pas donné la technique, j’ai cherché un peu et je vous donne la méthode ci dessous.
    Après avoir créé un nouvel agenda (que j’ai nommé ‘mail2sms’) et auquel je n’ai pas mis de notification d’alerte
    J’ai modifié le script pour avoir ça au final

    function EnvoiSMS() {
    var label = GmailApp.getUserLabelByName(‘Envoi SMS’);
    var threads = label.getThreads();
    var now = new Date().getTime();
    var calendars = CalendarApp.getCalendarsByName(‘mail2sms’);

    for(i in threads){
    calendars[0].createEvent(‘Mail recus ‘+threads[i].getFirstMessageSubject(), new Date(now+60000), new Date(now+60000)).addSmsReminder(0);
    }
    label.removeFromThreads(threads);
    }

    mardi 31 décembre 2013
    Reply
  37. Claude said:

    Bonsoir,

    j’ai essayé moult fois et vérifié l’orthographe et j’ai toujours la même erreur à l’exécution du script:
    “TypeError: Fonction getUserLabelByName introuvable dans l’objet GmailApp.(ligne2, fichier”Code””.
    Alors que le libellé fonctionne très bien dans Gmail avec plusieurs essais.

    Qui pourra me dépanner ?
    Merci d’avance

    mardi 18 février 2014
    Reply
  38. Franck said:

    En voici un qui marche : 1 seul SMS, pas d’erreur et événement supprimé de l’agenda après l’envoie du SMS.

    function EnvoiSMS() {

    var label = GmailApp.getUserLabelByName(‘EnvoiSMS’);

    var threads = label.getThreads();

    var now = new Date().getTime();

    for(i in threads){

    var test=CalendarApp.createEvent(threads[i].getFirstMessageSubject(), new Date(now+60000), new Date(now+60000));
    test.removeAllReminders();
    test.addSmsReminder(0);
    threads[i].moveToTrash();
    Utilities.sleep(90000);
    test.deleteEvent();
    }

    label.removeFromThreads(threads);
    }

    vendredi 28 février 2014
    Reply
  39. Franck said:

    Re,
    ci-dessous, le même que précédemment, mais celui-ci conserve le mail et il ne sera pas retraité car on lui retire le label.
    function EnvoiSMS() {

    var label = GmailApp.getUserLabelByName(‘EnvoiSMS’);

    var threads = label.getThreads();

    var now = new Date().getTime();

    for(i in threads){

    var test=CalendarApp.createEvent(threads[i].getFirstMessageSubject(), new Date(now+60000), new Date(now+60000));
    test.removeAllReminders();
    test.addSmsReminder(0);
    //threads[i].moveToTrash();
    threads[i].removeLabel(label);
    Utilities.sleep(90000);
    test.deleteEvent();
    }

    label.removeFromThreads(threads);
    }

    vendredi 28 février 2014
    Reply
  40. Claude said:

    Bonjour et merci Franck,
    J’ai essayé et testé ta deuxième version et ça avance :
    – Le label fonctionne dans Gmail
    – Le script s’exécute sans erreur, il me retire le label mais conserve le mail,
    – Seul souci : je ne reçoit pas de SMS !!!

    Dans cette version faut-il reconfigurer les agendas pour les rappels et notifications, utiliser un agenda pa

    lundi 3 mars 2014
    Reply
  41. STY said:

    Félicitation pour ce post, car même s’il date déjà un peu, il m’a été très utile.
    Je me suis permis de l’améliorer pour mon cas (et de commenter au passage 😉 ), donc j’en fait profiter à tout le monde.. ca peut toujours intéresser qq1..

    Fonctionnalités nouvelles:
    – Création des alertes dans un agenda particulier (à créer préalablement), et non dans l’agenda par défaut.
    – Supprime les alertes par défaut avant de rajouter la notification par SMS.
    – Notifications SMS personnalisées en fonction de l’objet du mail envoyé.


    function EnvoiSMS() {
    //Fait pointer sur le libellé "Envoi SMS" dans Gmail
    var label = GmailApp.getUserLabelByName('Envoi SMS');
    //Récupère la liste des objets dans ce libellé
    var threads = label.getThreads();
    //Récupère la date et l'heure actuelle
    var now = new Date().getTime();

    //Parcourt la liste des objets du libellé "Envoi SMS" dans gmail
    for(i in threads){
    //Fait pointer sur l'agenda portant le nom "Envoi SMS"
    var cal=CalendarApp.getCalendarsByName('Envoi SMS')[0];
    //Récupère le sujet du message à traiter
    var sujet=threads[i].getFirstMessageSubject();

    //fonction qui ajoute un événement dans l'agenda avec un rappel SMS
    function ajoutAgenda(intitule){
    //Ajoute un événement dans l'agenda _SMS à la date actuelle + 1minute avec un seul rappel qui se déclanchera 1 minute après l'insertion
    cal.createEvent(intitule, new Date(now+60000), new Date(now+60000)).removeAllReminders().addSmsReminder(0);
    }

    //Bloc de conditions à adapter selon l'objet des mails et la notification SMS souhaitée
    //Ajoute un événement (titre personnalisé) dans l'agenda en fonction de l'objet du mail reçu
    if (sujet == 'motion alarm mac=xxxxxxx') {
    ajoutAgenda('Détection présence CAM1');
    }
    else if (sujet == 'motion alarm mac=yyyyyyy') {
    ajoutAgenda('Détection présence CAM2');
    }
    else if (sujet == 'motion alarm mac=zzzzzzz') {
    ajoutAgenda('Détection présence CAM3');
    }
    else {
    cal.createEvent(threads[i].getFirstMessageSubject(), new Date(now+60000), new Date(now+60000)).removeAllReminders().addSmsReminder(1);
    }
    //Commande à décommenter si on souhaite supprimer les mails après traitement
    //threads[i].moveToTrash();
    }

    //Ferme le pointeur
    label.removeFromThreads(threads);
    }

    Vous pouvez enlever ou rajouter les blocs :

    if (sujet == '....') {
    ajoutAgenda('....');
    }

    en fonction du nombre de conditions souhaitées.

    vendredi 14 mars 2014
    Reply
  42. STY said:

    ATTENTION
    Je vois que mon post du code à été découpé en morceau avec des ascenseurs au milieu.
    Le code complet est :

    Félicitation pour ce post, car même s’il date déjà un peu, il m’a été très utile.
    Je me suis permis de l’améliorer pour mon cas (et de commenter au passage 😉 ), donc j’en fait profiter à tout le monde.. ca peut toujours intéresser qq1..

    Fonctionnalités nouvelles:
    – Création des alertes dans un agenda particulier (à créer préalablement), et non dans l’agenda par défaut.
    – Supprime les alertes par défaut avant de rajouter la notification par SMS.
    – Notifications SMS personnalisées en fonction de l’objet du mail envoyé.


    function EnvoiSMS() {
    //Fait pointer sur le libellé "Envoi SMS" dans Gmail
    var label = GmailApp.getUserLabelByName('Envoi SMS');
    //Récupère la liste des objets dans ce libellé
    var threads = label.getThreads();
    //Récupère la date et l'heure actuelle
    var now = new Date().getTime();

    //Parcourt la liste des objets du libellé "Envoi SMS" dans gmail
    for(i in threads){
    //Fait pointer sur l'agenda portant le nom "Envoi SMS"
    var cal=CalendarApp.getCalendarsByName('Envoi SMS')[0];
    //Récupère le sujet du message à traiter
    var sujet=threads[i].getFirstMessageSubject();

    //fonction qui ajoute un événement dans l'agenda avec un rappel SMS
    function ajoutAgenda(intitule){
    //Ajoute un événement dans l'agenda _SMS à la date actuelle + 1minute avec un seul rappel qui se déclanchera 1 minute après l'insertion
    cal.createEvent(intitule, new Date(now+60000), new Date(now+60000)).removeAllReminders().addSmsReminder(0);
    }

    //Bloc de conditions à adapter selon l'objet des mails et la notification SMS souhaitée
    //Ajoute un événement (titre personnalisé) dans l'agenda en fonction de l'objet du mail reçu
    if (sujet == 'motion alarm mac=xxxxxxx') {
    ajoutAgenda('Détection présence CAM1');
    }
    else if (sujet == 'motion alarm mac=yyyyyyy') {
    ajoutAgenda('Détection présence CAM2');
    }
    else if (sujet == 'motion alarm mac=zzzzzzz') {
    ajoutAgenda('Détection présence CAM3');
    }
    else {
    cal.createEvent(threads[i].getFirstMessageSubject(), new Date(now+60000), new Date(now+60000)).removeAllReminders().addSmsReminder(1);
    }
    //Commande à décommenter si on souhaite supprimer les mails après traitement
    //threads[i].moveToTrash();
    }

    //Ferme le pointeur
    label.removeFromThreads(threads);
    }

    Vous pouvez enlever ou rajouter les blocs :

    if (sujet == '....') {
    ajoutAgenda('....');
    }

    en fonction du nombre de conditions souhaitées.

    vendredi 14 mars 2014
    Reply
  43. Morgan said:

    Merci pour ce script, il fonctionne impec.
    Avec l’ancien, je recevais des mails me disant “connexion impossible”. je verrai avec celui-ci.
    Le seul bémol (qui me gêne un peu) est le délais de réception du SMS.

    vendredi 21 mars 2014
    Reply
  44. Jerome said:

    Bonjour. Merci pour ce tuto qui fonctionne super bien quand on veut récupérer le sujet d’un mail et le transférer par SMS.

    Etant néophyte en programmation je n’arrive pas à adapter le script pour pouvoir récupérer le corps d’un message (dans mon cas présent mes messages à transférer font 100 caractères tout au plus).

    J’ai bien gratté un peu du côté de la fonction getPlainBody mais je ne parviens pas à l’inclure dans le script de départ.

    Si une âme charitable a une petite idée … ?

    Grand merci d’avance.

    dimanche 29 juin 2014
    Reply
    • eziel said:

      regarde le code que j’ai fourni, il y a la réponse à ta demande.

      Cordialement, eziel

      dimanche 27 juillet 2014
      Reply
  45. eziel said:

    Bonjour à tous,

    Tout d’abord merci pour ce script.

    A noter que Free mobile propose depuis peu la Notifications par SMS :
    http://www.freenews.fr/spip.php?article14817

    Si vous avez un forfait Free mobile,
    vous pouvez donc passer par free pour vous envoyer le SMS
    sans utiliser la notification par SMS de Google.

    Voici ci-dessous un exemple de script que j’ai pris à partir de cette URL :
    http://myfox.forumactif.org/t1813-tutoriel-utiliser-google-pour-envoyer-un-sms-a-la-reception-dune-alerte-mail
    et que j’ai adapté :

    // Script permettant de m’envoyer un SMS avec l’URL fournie par Free

    /* Un mail arrive dans ma boîte aux lettres : votreAdresseMail@gmail.com
    Ce mail provient de l’adresse : expediteur@domaine.com

    A la réception de ce mail, celui-ci est déclaré comme important par le filtre mis en place dans Gmail
    Si les critères paramétrés dans le filtre correspondent aux caractéristiques du mail, c’est à dire :
    – émetteur : expediteur@domaine.com
    – sujet :
    – mots dans le corps du message :

    Alors, le filtre applique le label EnvoiSmsFree

    Ce script est lancé toutes les minutes avec le déclencheur de Google Drive qui le traite et envoi un SMS avec l’URL fournie par Free */

    function EnvoiSMSFree()
    {
    // c’est le libelle crée dans votre boite mail
    var libelle = “EnvoiSmsFree”;

    // c’est l’URL fournie par Free que vous devez compléter avec votre user, votre mot de passe et votre numéro de téléphone portable Free
    var urlFree = “https://smsapi.free-mobile.fr/sendmsg?user=votreUser&pass=votreMotDePasse&to=votreNumeroDeTelephonePortableFree&msg=”;

    // label est un objet de type GmailLabel (A user-created label in a user’s Gmail account)
    var label = GmailApp.getUserLabelByName( libelle );
    Logger.log( “le label qui a ete retourne par la methode getUserLabelByName est : ” + label.getName() );

    // J’ai placé le test ci-dessous car de temps en temps, le script n’arrive pas à se connecter à Gmail et il m’envoie un mail pour me l’indiquer
    if ( label == null )
    {
    /* UrlFetchApp est une classe de l’API :
    (Fetch resources and communicate with other hosts over the Internet.
    This service allows scripts to communicate with other applications or access other resources on the web by fetching URLs.
    A script can use the URL Fetch service to issue HTTP and HTTPS requests and receive responses.
    The URL Fetch service uses Google’s network infrastructure for efficiency and scaling purposes) */

    // reponse est un objet de type HTTPResponse (This class allows users to access specific information on HTTP responses)
    var reponse = UrlFetchApp.fetch( urlFree + “Connexion%20à%20Gmail%20impossible” );
    Logger.log( “Connexion a Gmail impossible. le code HTTP recu est : ” + reponse.getResponseCode() );
    }
    else
    {
    // threads est un objet de type GmailThread (A thread in a user’s Gmail account)
    var threads = label.getThreads();
    Logger.log( “valeur de threads : %s”, threads.length );

    for (var i = 0; i < threads.length; i++)
    {
    Logger.log( "i est egal a : %s", i );

    var courrier = threads[i].getMessages()[0];
    var expediteur = courrier.getFrom();
    var objet = courrier.getSubject();
    var contenu = courrier.getPlainBody()
    var dateCourrier = courrier.getDate();

    Logger.log( "mail provenant de : %s", expediteur );
    Logger.log( "l objet du mail est : %s", objet );
    Logger.log( "le contenu du mail est : %s", contenu );
    Logger.log( "le mail date de : %s", dateCourrier );

    /*
    var dateFormatee = Utilities.formatDate( new Date(), "GMT+01:00", "dd MM yyyy" );
    // heureFormatee donne l'heure d'hiver pour la France
    var heureFormatee = Utilities.formatDate( new Date(), "GMT+01:00", "HH mm ss" );
    Logger.log( dateFormatee );
    Logger.log( heureFormatee );
    */

    var reponse = UrlFetchApp.fetch( urlFree + " objet : " + objet + ". Recu le : " + dateCourrier + '.' );
    Logger.log( "le code HTTP recu est : " + reponse.getResponseCode() );

    // place le mail que j'ai recu de expediteur@domaine.com a l'adresse : votreAdresseMail@gmail.com à la poubelle
    //threads[i].moveToTrash();
    }

    label.removeFromThreads( threads );
    }
    }

    dimanche 27 juillet 2014
    Reply
    • Olivier said:

      Bonjour,
      J’ai copié texto le script et lorsque je veux l’exécuter, il m’affiche l’erreur suivante :
      TypeError: Impossible d’appeler la méthode “getName” de null. (ligne 19, fichier “Code”

      dimanche 7 septembre 2014
      Reply
      • Olivier said:

        Bonjour, J’ai réussi à faire fonctionner le script.
        J’aimerai afficher l’expéditeur mais cela ne fonctionne pas. Avez-vous fait un essai?

        lundi 8 septembre 2014
        Reply
  46. Steelson said:

    Excellent tuto !

    Plutôt que de mettre à la poubelle le mail, je le mets en “lu”.
    Plutôt que de prendre le premier mail de la conversation, je prends le dernier
    On ajoute l’émetteur
    Et en français pour une meilleure compréhension

    //adaptation Steelson forum myfox, libre de droits
    function EnvoiSMS() {
    var libelle = GmailApp.getUserLabelByName('Envoi SMS');
    var conversation = libelle.getThreads();
    var maintenant = new Date().getTime();
    var calendrier = CalendarApp.getCalendarsByName('alertes');
    for(i in conversation){
    if(conversation[i].isUnread()){
    var message = conversation[i].getMessages()[Number(conversation[i].getMessageCount()-1)];
    calendrier[0].createEvent('Réception de : '+message.getFrom()+' : '+message.getSubject(), new Date(maintenant+60000), new Date(maintenant+60000)).addSmsReminder(0);
    }
    }
    }

    Ne pas oublier de supprimer les événements, voici un script à faire tourner tous les jours :
    function SupprimerEvenements() {

    var maintenant = new Date().getTime();
    var debut = new Date("January 1, 2014 GMT");
    var fin = new Date(maintenant-86400000);

    var moncalendrierID = "xxxxxxxxxxxxxxxxxxxxxx@group.calendar.google.com";

    var moncalendrier=CalendarApp.getCalendarById(moncalendrierID);
    var evenements = moncalendrier.getEvents(debut, fin);

    for (i in evenements) {
    evenements[i].deleteEvent();
    }

    }
    -86400000 signifie -24h, c’est à dire que tous les événements passés il y a plus d’un jour seront supprimés !
    xxxxxxxxxxxxxxxxxxxxxx@group.calendar.google.com est à remplacer par l’identifiant de votre calendrier, l’application vous l’indique mais ce n’est pas évident à trouver.

    dimanche 17 août 2014
    Reply
    • Joopa said:

      Merci à Hervé , Esiel, Steelson et Co pour toutes ces infos.
      On peut appliquer un “filtre textuel” sur la liste des events générés dans l’agenda (et qui seront supprimés) :
      var evenements = CalendarApp.getEvents(debut, fin, {search: ‘DOMO-‘});
      C’est plus propre, et cela cible les events à supprimer.
      A appliquer lorsque l’on n’utilise pas un agenda dédié aux SMS comme par exemple “alertes” (cf code de Steelson).
      Encore merci à tous.

      dimanche 14 décembre 2014
      Reply
  47. Steelson said:

    Attention, le post du message a été tronqué, il faut bien sûr mettre le mail en lu

    if(conversation[i].isUnread()){
    var message = conversation[i].getMessages()[Number(conversation[i].getMessageCount()-1)];
    calendrier[0].createEvent('Réception message : '+message.getSubject(), new Date(maintenant+60000), new Date(maintenant+60000)).addSmsReminder(0);
    message.markRead();
    }

    dimanche 17 août 2014
    Reply
  48. walid said:

    Bonjour à tous et merci pour ce tuto.
    J’ai créé deux scripts pour deux expéditeurs différents. Tout marche bien sauf qu’en recevant les sms j’aimerai connaitre l’expéditeur.
    Quelqu’un a une idée ?

    mercredi 17 septembre 2014
    Reply
  49. JF said:

    Bonjour à tous,
    Merci pour toutes ces infos !
    Je vais avoir besoin de vos lumières SVP car je patauge un peu :
    – J’ai créé l’alerte en suivant le tuto : tout va bien chez moi :
    * 1 seul SMS reçu
    * le message disparaît, mis à la corbeille de GMail.
    C’est ça qui m’embête : j’ai besoin de garder le message et je me suis dit qu’en supprimant le libellé, ça devrait suffire.
    Sauf que je ne retrouve pas mon script dans GDrive !!!
    Où est-il planqué nom d’un chien ?!
    Il fonctionne toujours, j’ai testé. Mais j’aimerais le modifier comme le proposent plusieurs gentils contributeurs…
    Bref, help !
    Merci !

    vendredi 21 novembre 2014
    Reply
  50. JF said:

    OK, j’ai pigé :
    J’avais créé le script à partir d’une feuille de calcul.
    J’ai ensuite mis cette feuille de calcul (qui paraissait vide) à la corbeille.
    Impossible par la suite de retrouver le script.
    J’ai récupéré la feuille de calcul, je retourne par son intermédiaire dans “Outils -> Editeur de scripts”, et là, miracle, je retrouve mon script “Envoi SMS”.
    Yes !
    Reste maintenant à faire la modif pour ne plus effacer les mails…
    Encore merci pour le script et le tuto !

    vendredi 21 novembre 2014
    Reply
  51. JF said:

    C’est encore moi.
    J’ai approfondi ma lecture des messages précédents et j’ai pu bloquer la suppression des mails en remplaçant :
    threads[i].moveToTrash();

    par
      //threads[i].moveToTrash();

    (pour les néophytes comme moi, j’explique : la commande n’est plus interprétée, elle est considérée comme un commentaire.)
    Au final, les messages restent présents dans ma BAL et je reçois bien le SMS.
    Je vais étudier le truc pour que les évènements soient effacés car cela va polluer mon agenda. Mais je crois que la réponse est déjà un peu plus haut.

    vendredi 21 novembre 2014
    Reply
    • Joopa said:

      Pour effacer les events de l’agenda (à affiner avec ton texte) :
      var evenements = CalendarApp.getEvents(debut, fin, {search: ‘DOMO-‘});

      dimanche 14 décembre 2014
      Reply
  52. surik said:

    Bonjour,
    J’ai entendu parler d’un script qui permet de sauvegarder les captures des caméras IP sur google drive ou Dropbox.
    Cela évite le NAS…
    Auriez vous des infos sur un tel script svp ?

    mercredi 26 novembre 2014
    Reply
  53. Ninouness said:

    Voici ma personnalisation du script de STY (cf plus haut) dans le cadre de l’alarme via Blyss Box :

    function EnvoiSMS() {
    //Fait pointer sur le libellé “Envoi SMS” dans Gmail
    var label = GmailApp.getUserLabelByName(‘Envoi SMS’);
    //Récupère la liste des objets dans ce libellé
    var threads = label.getThreads();
    //Récupère la date et l’heure actuelle
    var now = new Date().getTime();

    //Parcourt la liste des objets du libellé “Envoi SMS” dans gmail
    for(i in threads){
    //Fait pointer sur l’agenda portant le nom “MailToSMS”
    var cal = CalendarApp.getCalendarsByName(‘MailToSMS’)[0];
    //Récupère le sujet du message à traiter
    var sujet = threads[i].getFirstMessageSubject();

    //fonction qui ajoute un événement dans l’agenda avec un rappel SMS
    function ajoutAgenda(intitule){
    //Ajoute un événement dans l’agenda _SMS à la date actuelle + 1minute avec un seul rappel qui se déclanchera 1 minute après l’insertion
    cal.createEvent(intitule, new Date(now+60000), new Date(now+60000)).removeAllReminders().addSmsReminder(0);
    }

    //Bloc de conditions à adapter selon l’objet des mails et la notification SMS souhaitée
    //Ajoute un événement avec un titre automatiquement personnalisé dans l’agenda en fonction de l’objet du mail reçu
    //Si l’objet du mail recu ne contient pas le texte recherché, il sera envoyé sans personnalisation.
    var testalerte = sujet.indexOf(‘ALERTE INTRUSION Blyssbox’);
    if (testalerte !== -1){
    var rechercheprems = sujet.indexOf(‘”‘);
    var accessoire = sujet.substring(rechercheprems+1,sujet.indexOf(‘”‘,rechercheprems+1));
    ajoutAgenda(‘ALERTE INTRUSION signalée par ‘+accessoire);
    }
    else {
    cal.createEvent(threads[i].getFirstMessageSubject(), new Date(now+60000), new Date(now+60000)).removeAllReminders().addSmsReminder(0);
    }
    //Commande à commenter si on souhaite ne pas supprimer les mails après traitement
    threads[i].moveToTrash();
    }

    //Retire le libellé du mail
    label.removeFromThreads(threads);
    }

    lundi 15 décembre 2014
    Reply
  54. aladin said:

    Bonjour
    je teste en ce moment la fonction smsapi de freemobile et je ne parviens pas a comprendre la limite du service vis à vis du contenu du message.
    pour piloter une alarme a distance via sms , j’ai besoin de faire arriver un 0 à la centrale via sms .
    J’ai essaye pas mal de truc mais il est Impossible de pouvoir envoyer le chiffre 0 via ce service .
    Tout type de message a été testé ( numérique 1 ou 2 ou 3 ) mais le 0 ne passe pas . J’ai essayé le methode vis url
    en mettant &msg=0 ou &msg=”0″ ou &msg=’0′ ou &msg=%30
    rine n’y fait , aucun sms n’est envoyé …
    Arriez vous une idée, une astuce, un mode de contournnement de cette limite ….
    merci

    dimanche 25 janvier 2015
    Reply
  55. tardieub said:

    Bonjour et merci Hervé

    Ca marche très bien mais j’ai une question : le contenu du mail ne peut pas être transféré avec?
    En fait moi ce sont des mails d’alertes style “alarme défaut…” et le contenu a son importance.
    Enfin de toute façon c’est du très bon boulot merci encore.

    samedi 7 mars 2015
    Reply
  56. Cali said:

    Un grand merci Hervé,

    Cette découverte va changer ma vie !!!!

    dimanche 15 mars 2015
    Reply
    • Hervé Hervé said:

      Bonjour Cali,
      Si le changement est en mieux c’est le but de ce partage! 😉

      jeudi 19 mars 2015
      Reply
  57. Ninouness said:

    Google supprime les alertes par SMS à compté du 27/06/2015.
    Du coup, il faut maintenant utiliser les notifications de l’agenda. D’accord c’est bien moins fiable si vous êtes dans une zone sans 3G mais en attendant de mieux, voici le script modifié pour les notifications.
    Ce script ne créer pas de rappel, donc il faut aller dans les paramètres de l’agenda afin d’y indiquer que tout nouvel évènement aura un rappel par notification 1 minute avant.

    function EnvoiNotification() {
    //Fait pointer sur le libellé “Envoi Notification” dans Gmail
    var label = GmailApp.getUserLabelByName(‘Envoi Notification’);
    //Récupère la liste des objets dans ce libellé
    var threads = label.getThreads();
    //Récupère la date et l’heure actuelle
    var now = new Date().getTime();

    //Parcourt la liste des objets du libellé “Envoi Notification” dans Gmail
    for(i in threads){
    //Fait pointer sur l’agenda portant le nom “MailToNotification”
    var cal = CalendarApp.getCalendarsByName(‘MailToNotification’)[0];
    //Récupère le sujet du message à traiter
    var sujet = threads[i].getFirstMessageSubject();

    //fonction qui ajoute un événement dans l’agenda.
    function ajoutAgenda(intitule){
    //Ajoute un événement dans l’agenda MailToNotification à la date actuelle + 1minute avec un seul rappel qui se déclanchera 1 minute après l’insertion
    cal.createEvent(intitule, new Date(now+60000), new Date(now+60000));
    }

    //Bloc de conditions à adapter selon l’objet des mails et la notification souhaitée
    //Ajoute un événement avec un titre automatiquement personnalisé dans l’agenda en fonction de l’objet du mail reçu
    //Si l’objet du mail recu ne contient pas le texte recherché, il sera envoyé sans personnalisation.
    var testalerte = sujet.indexOf(‘ALERTE INTRUSION Blyssbox’);
    if (testalerte !== -1){
    var rechercheprems = sujet.indexOf(‘”‘);
    var accessoire = sujet.substring(rechercheprems+1,sujet.indexOf(‘”‘,rechercheprems+1));
    ajoutAgenda(‘ALERTE INTRUSION signalée par ‘+accessoire);
    }
    else {
    cal.createEvent(threads[i].getFirstMessageSubject(), new Date(now+60000), new Date(now+60000));
    }
    //Commande à commenter si on souhaite ne pas supprimer les mails après traitement
    threads[i].moveToTrash();
    }

    //Retire le libellé du mail
    label.removeFromThreads(threads);
    }

    vendredi 5 juin 2015
    Reply
  58. Antoine said:

    Bonjour, merci Ninouness pour ta solution de remplacement !
    Cependant je n’arrive pas a faire foncionner le script, j’ai des erreurs du type “Caractère incorrect. (ligne 27, fichier “Code”)Ignorer”
    J’ai bien créé l’agenda MailToNotification ainsi qu’ajouté un rappel par événement.
    Aurais-tu une piste sur ce que j’ai loupé ?
    Merci

    jeudi 17 septembre 2015
    Reply
    • Alboon said:

      Ce sont les guillemets qui ne passent pas, il faut les réécrire. Mais quand bien même, ça ne fonctionne pas pour moi.

      dimanche 27 septembre 2015
      Reply
  59. Tom said:

    Bonjour,
    Plus simple il me semble : notification Free Mobile et Pushingbox
    On peut utiliser smsapi de Free mobile en l’associant à Pushingbox via un scenario simple et leur mail Api. Cela crée une adresse mail que l’on peut renseigner dans tout logiciel, ça marche donc pour la Blyssbox en modifiant vos alertes sur https://www.liveez.castorama.fr/, et ainsi quand le mail d’alerte intrusion est envoyé on reçoit un sms dans la minute.

    mardi 1 mars 2016
    Reply

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain: * Time limit is exhausted. Please reload CAPTCHA.