Problemi con AppleScript per Mail per replicare la funzione Sweep di Outlook

0

Recentemente ho ricevuto un aiuto meraviglioso qui a scrivere un AppleScript per Mail. Il mio obiettivo è elaborare i messaggi in arrivo in questo modo: se il messaggio in arrivo proviene da un mittente designato, sposta quel messaggio in una casella di posta di destinazione (ad esempio "Ricorsi di carità") e quindi elimina tutti i messaggi precedenti dallo stesso mittente nella stessa casella di posta. Quindi terrei solo il messaggio più recente da quel mittente, simile a quello delle opzioni Sweep in Hotmail / Outlook.

Questaèlaregolacheesegueilmioscript.Sinoticheilcomando"sposta" viene sempre eseguito prima dello script, anche se provo a posizionarlo dopo il comando di esecuzione dello script. Mail.app non sembrava eseguire lo script e pensavo che potesse essere causato spostando prima il messaggio in arrivo nella cassetta postale di destinazione, quindi eseguendo lo script sulla cassetta postale di destinazione. Poiché lo script confronta i messaggi in arrivo ( eachMessage in these_messages ) con i messaggi nella cassetta postale di destinazione ( everyMessage ), forse non ci sono oggetti ogni Messaggio rimasti dopo lo spostamento eseguito da utilizzare nello script? Per testare la mia teoria, ho deciso di incorporare il comando move nel mio script, come segue:

using terms from application "Mail"
    on perform mail action with messages these_messages for rule this_rule
        tell application "Mail"
            set everyMessage to a reference to messages in mailbox "Charitable appeals" of account "iCloud"
            repeat with eachMessage in these_messages
                delete (everyMessage where ¬
                    the date received is not the (current date) ¬
                    and (its sender is the sender of eachMessage ¬
                    or its reply to is equal to the reply to of eachMessage))
            end repeat
            repeat with eachMessage in these_messages
                move eachMessage to mailbox "Charitable appeals" of account "iCloud"
            end repeat
        end tell
    end perform mail action with messages
end using terms from

Quindi ora la mia regola esegue il mio script solo sui messaggi in arrivo appropriati. Il problema ora è che, se I Apply Rules manualmente su un messaggio dal menu mail.app, lo script viene eseguito come previsto, ma quando la regola viene eseguita automaticamente sui messaggi in arrivo, mail.app si blocca, è not responding , devo forza chiudere e riavviare, a volte prima disabilitare lo script. Ho pensato che potesse esserci perché c'erano più di 100 messaggi nella casella di posta di destinazione, ma poi li ho puliti per avere solo ~ 50 messaggi e persiste persistente.

Ho esperienza con Javascript, ma sono un AppleScript n00b, quindi qualsiasi assistenza sarà più apprezzata!

    
posta Lantz Warrick 14.07.2018 - 18:54
fonte

0 risposte

Leggi altre domande sui tag