Vous vous noyez dans des newsletters Gmail débordantes ? Si le filtrage des liens de désabonnement est une solution connue, cet article s'attaque à un problème plus complexe : gérer efficacement un grand nombre d'abonnements à la newsletter existante.
Le défi
Le volume des newsletters souscrites peut devenir écrasant. Examiner et se désabonner manuellement de chacun est fastidieux. L'objectif ici n'était pas de supprimer les anciens e-mails, mais de créer une liste simplifiée d'expéditeurs de newsletter actuels et uniques pour un désabonnement ciblé. Gmail lui-même n'a pas de solution simple.
La solution : Google Apps Script
Google Apps Script a fourni la réponse. Cet outil puissant vous permet d'écrire du code pour interagir avec divers services Google, en automatisant les tâches répétitives. Avec environ 100 abonnements à la newsletter sur différentes plateformes, ce script s'est avéré inestimable pour réduire la liste aux seuls abonnements essentiels.
Voici un guide étape par étape pour reproduire cette solution :
main
. Autorisez le script à accéder à votre Gmail et Google Sheets.Répartition du script :
Le script comprend deux fonctions principales :
main()
: Cette fonction appelle _getUniqueMailingListSenders()
._getUniqueMailingListSenders()
: Cette fonction prend trois paramètres :searchOption
: la requête de recherche Gmail (par exemple, list:()
pour les newsletters générales).title
: Le titre à ajouter aux colonnes de la feuille de calcul.clearSheet
: Un booléen pour déterminer s'il faut effacer la feuille existante.La fonction alors :
Set
pour collecter des adresses e-mail d'expéditeur uniques.Map
.Code complet :
<code class="language-javascript">function _getUniqueMailingListSenders( searchOption, title, clearSheet = true, ) { const threads = GmailApp.search(searchOption); const senders = new Set(); threads.forEach(thread => { const messages = thread.getMessages(); messages.forEach(message => { senders.add(message.getFrom()); }); }); const emailData = new Map(); senders.forEach((sender) => { const emailMatch = sender.match(/<([^>]+)>/); const email = emailMatch ? emailMatch[1] : sender; const name = sender.replace(emailMatch ? emailMatch[0] : '', '').trim(); if (!emailData.has(email)) { emailData.set(email, name); } }); const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); if (clearSheet) { sheet.clear(); } const lastColumn = sheet.getLastColumn(); const emailColumn = lastColumn + 1; const nameColumn = lastColumn + 2; const currentDate = new Date().toLocaleDateString(); sheet.getRange(1, emailColumn).setValue(`${title} - Email - ${currentDate}`); sheet.getRange(1, nameColumn).setValue(`${title} - Name - ${currentDate}`); let row = 2; emailData.forEach((name, email) => { console.log(`Adding data on column (${emailColumn}, ${nameColumn}) and row ${row}: `, {email, name}); sheet.getRange(row, emailColumn).setValue(email); sheet.getRange(row, nameColumn).setValue(name); row++; }); } function main() { _getUniqueMailingListSenders( 'list:()', 'Unique Email Senders', false, ); }</code>
Conclusion
Google Apps Script offre une solution puissante pour gérer les abonnements aux e-mails volumineux. Ce script simplifie le processus, permettant un examen et un désabonnement efficaces des newsletters indésirables. Explorez Apps Script pour découvrir d'autres opportunités d'automatisation potentielles.
Connectez-vous avec moi sur :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!