2016-08-23 3 views
0

Ich habe den Anfang eines Skripts (unten), um eine bestimmte Nachricht zu suchen und zu markieren, aber das Problem ist die GmailApp.search() -Methode gibt eine Zeichenfolge zurück, die GmailApp.starMessage() nicht verarbeiten kann (Der Fehler lautet "Array kann nicht in GmailMessage konvertiert werden"). Wie kann ich die Suche aus einem String umwandeln oder irgendwie mit einem brauchbaren Objekt in Beziehung setzen?Google Apps Script Gmail Stern Suchergebnis

function starEmail() { 
    var email = GmailApp.search('from:[email protected] is:unread') 
    GmailApp.starMessage(email); 
} 
+0

Mir ist klar, dass ... darum bitte ich um Hilfe. Hat jemand Vorschläge, wie dies zu erreichen ist? – mada2885

+0

Suche gibt keine Zeichenfolge zurück, wie Sie sagen. Die Dokumentation zeigt Ihnen, was es zurückgibt. –

+0

https://developers.google.com/apps-script/reference/gmail/gmail-app#search(String) –

Antwort

0

in der Dokumentation GmailApp Blick sieht es aus wie Sie einen zusätzlichen Schritt zwischen Ihrem .search() und Ihre .starMessage() Methoden haben werden hinzuzufügen.

.search() gibt Typ GmailThread[] zurück, während .starMessage() Typ GmailMessage erfordert. Sie müssen die .getMessages() Methode in der GmailThread Klasse verwenden, um Ihr Suchergebnis Array in ein Array von Nachrichten zu konvertieren, die Sie dann Stern kann:

function starEmail(){ 
    var threads = GmailApp.search('search:parameters'); //returns array 

    //assuming search returns one thread as question suggests 
    //otherwise, a for-in loop would probably be appropriate here. 
    var message = threads[0].getMessages(); //returns array 

    GmailApp.starMessage(message[0]) 
} 

search()

getMessages()

starMessage()

Verwandte Themen