0

J'ai un script qui extrait des données d'un compte Gmail. Le script scanne la boîte de réception pour les mails et trouve les lignes de texte pertinentes et les met dans une feuille Google.Google App Script pour synchroniser la boîte de réception Gmail avec des feuilles

L'email ressemble à quelque chose comme:

Véhicule: 5761364, Position: (URL Google Maps)

Le script que j'utilise pour obtenir les données des feuilles est:

function processInboxToSheet() { 
    var start = 0; 
    var threads = GmailApp.getInboxThreads(start, 100); 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var result = []; 

    for (var i = 0; i < threads.length; i++) { 
    var messages = threads[i].getMessages(); 

    var content = messages[0].getPlainBody(); 

    if (content) { 
     var tmp; 
     tmp = content.match(/Vehicle:\s*([A-Za-z0-9\s]+)(\r?\n)/); 
     var username = (tmp && tmp[1]) ? tmp[1].trim() : 'No vehicle'; 

     tmp = content.match(/Map Link:\s*([A-Za-z ][[email protected]#$%?=^.,:&*/ ]+)/); 
     var comment = (tmp && tmp[1]) ? tmp[1] : 'No url'; 

     sheet.appendRow([username, comment]); 

     Utilities.sleep(500); 
    } 
    } 
}; 

Would il est possible de faire une sorte de fonction de synchronisation, où la feuille Google est mise à jour automatiquement avec les e-mails dans la boîte de réception. En ce moment, il fait des doublons chaque fois qu'il s'exécute.

Aussi, quelqu'un pourrait-il me dire s'il est possible d'obtenir le script pour supprimer les lignes créées si l'email est supprimé. La liste des feuilles est donc toujours synchronisée avec la boîte de réception?

S'il vous plaît demandez-moi si cela n'a pas de sens.

Répondre

0

Vous pouvez exécuter votre script à partir d'un timebased trigger et si vous venez de réécrire la feuille entière à chaque fois, cela supprimera les entrées des e-mails supprimés. Si vous pouviez ajouter la date reçue à la feuille de calcul, vous pourriez les commander par date.