IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

[Gmail] récupérer les données d'un mail


Sujet :

APIs Google

  1. #1
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut [Gmail] récupérer les données d'un mail
    Bonjour.

    Je vous présente la demande qui m'a été demandée :
    Sur le clic d'un mail, pouvoir récupérer des information du mail :
    - expéditeur (Nom, Prénom, adresse mail)
    - Objet du mail
    - Date d'ouverture du mail
    - ...

    Je pense que c'est éventuellement possible via un add-on que je pourrais créer mais on me demande de voir si c'est possible autrement (oui, personne ne connais vraiment GSuite).

    L'idée est de cliquer sur un mail, afficher une pop-up (ou éventuellement ouvrir un nouvel onglet du navigateur) affichant des infos du mail en question mais aussi avoir un formulaire pour y saisir des informations pour les envoyer dans un Sheets (voir même enregistrer l’expéditeur du mail dans les contacts si celui-ci n'existe pas).

    Pour cela, je pense qu'il faudrait pouvoir déclencher un script au clic sur le mail.

    Donc, est-il possible de déclencher un script au clic sur un mail ?
    Est-il possible d'afficher ou ouvrir une page web quand on clique sur un mail ?
    Bref, est-il possible de faire ce qu'on me demande ?

    J'ai quand même peur que ce soit difficile voir impossible (sauf peut être avec un add-on qu'on me demande d’éviter).
    Je n'ai aucune idée de comment faire (et oui, même si j'aimerais bien, on peut pas devenir un pro de GS en 1 mois ^^).

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé

    Homme Profil pro
    Chomeur
    Inscrit en
    Juin 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chomeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 347
    Points : 452
    Points
    452
    Par défaut
    Bonjour,

    Je peux me tromper, mais il ne me semble pas qu'il soit possible de déclencher un script à l'ouverture d'un email (sur un email reçu! Car il est possible de suivre les emails envoyés par tracking pixel)...
    Mais le besoin est peut-être atteignable d'une autre façon : par exemple un spreadsheet qui à l'ouverture vérifierai les emails et, par exemple, listerai uniquement ceux de contacts inconnus. Puis depuis la liste établie et proposée dans la sheet, chaque clic ouvrirai une fenêtre de saisie complémentaires avec création contact, etc... Et du coup, il ne s’agirait plus d'un add-on !

    Bon courage
    Signature à venir...
    Ancienne : Divers NTIC (PHP, Dojo, à venir...) : http://tif44.fr/blog/

  3. #3
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Je vois se que tu veux dire mais ce ne sera pas fonctionnel comme voulu.

    Après explication des différentes problématiques, j'ai pu partir sur le fait de créer un Add-on ^^.

    Après création graphique des l'add-on, j'ai un problème de récupération des information pour la création d'un contact si l'expéditeur n'en fait pas parti.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    function buildAddOn(e) {  // Activer les extensions complémentaires de Gmail
      var accessToken = e.messageMetadata.accessToken;
      GmailApp.setCurrentMessageAccessToken(accessToken);
     
      var messageId = e.messageMetadata.messageId;
      var message = GmailApp.getMessageById(messageId);
      var emailAddress = recupEmail(message.getFrom(), '<', '>'); // Dans le message, l'adresse mail de l'expéditeur se trouve entre les balises '<' et '>'
      var objet = message.getSubject();
     
     
      var contact = ContactsApp.getContact(emailAddress);
      var contactNom;
      var contactPrenom;
     
      if(contact != null){
        contactPrenom = contact.getFamilyName();
        contactNom = contact.getFullName().replace(contactPrenom, '');
      }else{
        contactNom = '';
        contactPrenom = '';
      }// if-else
     
      var head = 'Expediteur';
      var labelNom = 'Nom';
      var labelPrenom = 'Prenom';
      var labelEmail = 'Adresse e-mail';
      var labelObjet = 'Objet';
      var labelMessage = 'Message';
     
      var action = CardService.newAction().setFunctionName('creatContact');
      var section = CardService.newCardSection();
      section.setHeader(head);
      section.addWidget(CardService.newTextInput().setFieldName('nom').setTitle(labelNom).setValue(contactPrenom));
      section.addWidget(CardService.newTextInput().setFieldName('prenom').setTitle(labelPrenom).setValue(contactNom));
      if(contact == null){
        section.addWidget(CardService.newTextButton().setText('Ajouter au contacts').setOnClickAction(action));
      }
      section.addWidget(CardService.newTextInput().setFieldName('mail').setTitle(labelEmail).setValue(emailAddress));
      section.addWidget(CardService.newTextInput().setFieldName('objet').setTitle(labelObjet).setValue(objet));
     
     
      var card = CardService.newCardBuilder()
      .addSection(section)
      .build();
     
      return [card];
    }
     
     
    function recupEmail(from, debut, fin){
      var result = from.split(debut)[1].split(fin)[0];
      return result;
    }
     
     
    function creatContact(){
      /*
      var givenName = ??;
      var familyName = ??;
      var email = ??;
      */
      ContactsApp.createContact(givenName, familyName, email)
    }
    Ce code, va ouvrir un volet latéral quand l'utilisateur clique sur un mail avec des zones de saies.
    Mais je n'arrive pas a trouver comment récupérer les informations saisies dans les input pour créer un nouveau contact.

    C'est un peut compliquer à expliquer.

    Une idée ??

Discussions similaires

  1. [PHP 5.0] La fonction mail est inopérante pour récupérer les données
    Par goofyto8 dans le forum Langage
    Réponses: 9
    Dernier message: 19/11/2018, 15h25
  2. Réponses: 0
    Dernier message: 13/01/2015, 17h21
  3. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39
  4. Récupérer les données interbase dans une TStringGrid
    Par Ousse dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/03/2005, 12h51
  5. Récupérer les données d'une iframe
    Par juli1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/02/2005, 22h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo