it-swarm.com.de

Google Mail-Filter zum Anzeigen von E-Mails, auf die ich nie geantwortet habe

Gibt es eine schnelle Möglichkeit, meinen Gmail-Posteingang zu durchsuchen oder zu filtern, um alle E-Mails anzuzeigen, auf die ich nie geantwortet habe?

2
Michaela

kommt auf "schnell" an. Hier ist ein kurzes Tutorial:

  • gehe zu https://script.google.com/home
  • oben links steht New script Taste
  • eine neue Registerkarte wird geöffnet. Warten Sie, bis sie geladen ist, und drücken Sie dann .CTRL + A
  • nächste Presse BACKSPACE, um alles unnötige zu entfernen
  • kopieren Sie diesen Code und fügen Sie ihn ein:
_/*
 * This script goes through your Gmail Inbox and finds recent emails where you
 * were the last respondent. It applies a Nice label to them, so you can
 * see them in Priority Inbox or do something else.
 *
 * To remove and ignore an email thread, just remove the unrespondedLabel and
 * apply the ignoreLabel.
 *
 * This is most effective when paired with a time-based script trigger.
 *
 * For installation instructions, read this blog post:
 * http://jonathan-kim.com/2013/Gmail-No-Response/
 */


// Edit these to your liking. var unrespondedLabel = 'No Response', ignoreLabel = 'Ignore No Response', minTime = '5d', // 5 days maxTime = '14d'; // 14 days


// Mapping of Gmail search time units to milliseconds. var UNIT_MAPPING = { h: 36e5, // Hours d: 864e5, // Days w: 6048e5, // Weeks m: 263e7, // Months y: 3156e7 // Years };


var ADD_LABEL_TO_THREAD_LIMIT = 100; var REMOVE_LABEL_TO_THREAD_LIMIT = 100;


function main() { processUnresponded(); cleanUp(); }


function processUnresponded() { // Define all the filters. var filters = [ 'is:sent', 'from:me', '-in:chats', '(-subject:"unsubscribe" AND -"This message was automatically generated by Gmail.")', 'older_than:' + minTime, 'newer_than:' + maxTime ];


var threads = GmailApp.search(filters.join(' ')), threadMessages = GmailApp.getMessagesForThreads(threads), unrespondedThreads = [], minTimeAgo = new Date();


minTimeAgo.setTime(subtract(minTimeAgo, minTime));


Logger.log('Processing ' + threads.length + ' threads.');


// Filter threads where I was the last respondent. threadMessages.forEach(function(messages, i) { var thread = threads[i], lastMessage = messages[messages.length - 1], lastFrom = lastMessage.getFrom(), lastTo = lastMessage.getTo(), // I don't want to hear about it when I am sender and receiver lastMessageIsOld = lastMessage.getDate().getTime() < minTimeAgo.getTime();

_
_if (isMe(lastFrom) && !isMe(lastTo) && lastMessageIsOld && !threadHasLabel(thread, ignoreLabel)) {
  unrespondedThreads.Push(thread);
}
_ </ code>

})
// Als nicht beantwortet markieren. MarkUnresponded (unrespondedThreads); Logger.log ('Updated' + unrespondedThreads.length + 'messages.'); }
function subtract (date, timeStr) { // Nimmt ein Datumsobjekt und subtrahiert eine Zeitzeichenfolge im Google Mail-Stil (z. B. '5d'). // Gibt ein neues Datumsobjekt zurück. var re = /^([0-9)+)([a-zA-Z)$/ , parts = re.exec (timeStr), val = parts && Teile 1 , Einheit = Teile && Teile 2 , ms = UNIT_MAPPING [Einheit];
return date.getTime () val * ms); }
funktion isMe (fromAddress) { var address = getEmailAddresses (); für (i = 0; i <address.length; i ++) { var address = address [i] , r = RegExp (Adresse, 'i');
_if (r.test(fromAddress)) {
  return true;
}
_

}
falsch zurückgeben; }
funktion getEmailAddresses () { // E-Mail-Adressen zwischenspeichern, um API-Aufrufe zu reduzieren. if (! this.emails) { Logger.log ('Keine zwischengespeicherten E-Mail-Adressen. Abrufen. '); Var me = Session.getActiveUser (). GetEmail (), Emails = GmailApp.getAliases ();
_emails.Push(me);
this.emails = emails;
Logger.log('Found ' + this.emails.length + ' email addresses that belong to you.');
_

} Diese E-Mails zurückgeben; }
funktion threadHasLabel (thread, labelName) { var labels = thread.getLabels ();
für (i = 0; i <labels.length; i ++) { var label = labels [i];
_if (label.getName() == labelName) {
  return true;
}
_

}
falsch zurückgeben; }
function markUnresponded (threads) { var label = getLabel (unrespondedLabel);
// addToThreads hat ein Limit von 100 Threads. Verwenden Sie die Stapelverarbeitung. If (threads.length> ADD_LABEL_TO_THREAD_LIMIT) { For (var i = 0; i <Math.ceil (threads.length/ADD_LABEL_TO_THREAD_LIMIT); i ++) { label.addToThreads (threads.slice (100 * i, 100 * (i + 1)); } } else { label.addToThreads (threads); } }
function getLabel (labelName) { // Cachet die Labels. this.labels = this.labels || {}; label = this.labels [labelName];
if (! label) { Logger.log ('Das zwischengespeicherte Label "' + labelName + '" konnte nicht gefunden werden.', this.labels);
_var label = GmailApp.getUserLabelByName(labelName);

if (label) {
  Logger.log('Label exists.');
} else {
  Logger.log('Label does not exist. Creating it.');
  label = GmailApp.createLabel(labelName);
}
this.labels[labelName] = label;
_

} Rücksendeetikett; }
function cleanUp () { var label = getLabel (unrespondedLabel), iLabel = getLabel (ignoreLabel), threads = label.getThreads (), expiredThreads = [], expiredDate = new Date ();
expiredDate.setTime (subtrahieren (expiredDate, maxTime));
if (! threads.length) { Logger.log ('Keine Threads mit diesem Label'); return; } else { Logger.log ( 'Processing' + threads.length + 'threads.'); }
threads.forEach (function (thread) { var lastMessageDate = thread.getLastMessageDate ();
_// Remove all labels from expired threads.
if (lastMessageDate.getTime() < expiredDate.getTime()) {
  Logger.log('Thread expired');
  expiredThreads.Push(thread);
} else {
  Logger.log('Thread not expired');
}
_

});
_// removeFromThreads has a limit of 100 threads. Use batching.
_

if (expiredThreads.length> REMOVE_LABEL_TO_THREAD_LIMIT) { für (var i = 0; i <Math.ceil (expiredThreads.length/REMOVE_LABEL_TO_THREAD_LIMIT); i ++) { label.remiceFrom () { 100 * i, 100 * (i + 1))); ILabel.removeFromThreads (expiredThreads.slice (100 * i, 100 * (i + 1)); } } else { label.removeFromThreads (expiredThreads); iLabel.removeFromThreads (expiredThreads); }
Logger.log (expiredThreads.length + 'Nicht beantwortete Nachrichten abgelaufen.'); }
  • klicken Sie auf das Uhrensymbol --- (
  • drücken Sie OK Taste
  • klicke auf No triggers set up. Click here to add one now.
  • ändern Sie den Stundentimer auf eine andere Frequenz, wenn Sie möchten
  • wenn Sie fertig sind, drücken Sie Save Taste
  • dann drücke Review Permissions Taste
  • wählen Sie Ihr Konto
  • unten links wählen Sie Erweitert
  • scrolle nach unten und klicke auf "Gehe zu Unbenanntem Projekt (unsicher)"
  • drücke das Allow Taste
  • öffne jetzt dein Google Mail-Konto (oder lade es erneut mit F5 Taste) und wenn der Auslöser aktiviert wird (je nachdem, wie Sie ihn eingerichtet haben), sehen Sie zwei neue Bezeichnungen:
    • Keine Antwort ignorieren
    • Keine Antwort

0
user0