Я использую этот код для передачи JPG писем в GDrive , но при каждом запуске код включает уже обработанные письма и дублирует файлы JPEG.
В чем проблема?
function GmailToDrive(){
//Création d'une requête de recherche de mails
query = 'is:unread subject:alarm -in:trash'
//query = 'label:gmailtodrive subject:UnSujet newer_than:1D'
Logger.log('Recherche des messages avec le filtre ' + query);
var objGmailThreadArray = GmailApp.search(query); //Recherche des messages basée sur le filtre. Cela retourne un tableau
var label = getGmailLabel_(labelName); //Pointe ou crée un label nommé labelName
if(objGmailThreadArray.length > 0){ //Si la recherche de mails à donné un résultat, on point ou on crée le répertoire cible
Logger.log('Il y a ' + objGmailThreadArray.length + ' résultats');
var objGdriveRootFolder = DriveApp.getRootFolder(); //On pointe sur le répertoire racine de Gdrive
var folderRacineImages = CreationRepertoire_(objGdriveRootFolder, folderName); //On pointe sur la racine du répertoire qui contient les images
var objRepertoireCible = CreationRepertoire_(folderRacineImages, now.toString()); //On pointe sur la racine du répertoire qui contient les images
}
var objGdriveRootFolder = DriveApp.getRootFolder(); //On pointe sur le répertoire racine de Gdrive
for(var UnMail in objGmailThreadArray){
var mesgs = objGmailThreadArray[UnMail].getMessages();
for(var j in mesgs){
//get attachments
var attachments = mesgs[j].getAttachments();
for(var k in attachments){
Logger.log('attachement : ' + k);
var attachment = attachments[k];
var isDefinedType = checkIfDefinedType_(attachment);
if(!isDefinedType) continue;
var attachmentBlob = attachment.copyBlob();
var file = DriveApp.createFile(attachmentBlob); //On récupère le fichier contenu dans le mail et on le stocke à la racine de Gdrive. La fonction ne donne pas le choix de la cible
objRepertoireCible.addFile(file); //On copie ce même fichier sur le répertoire cible voulu
objGdriveRootFolder.removeFile(file); //On efface le fichier qui a été créé à la racine
}
mesgs[j].markRead(); //marqué comme lu
mesgs[j].moveToTrash(); //Move message to trash
}
objGmailThreadArray[UnMail].addLabel(label);
}
}