Usa AppleScript per inviare tutte le email in una cartella in un determinato momento

0

Mi piacerebbe molto sviluppare un AppleScript per inviare tutte le email all'interno di una casella postale specifica ogni volta che viene eseguita. Quindi posso creare una casella di posta denominata "9AM", inserire e-mail al suo interno e, con un piccolo aiuto di cron / iCal, inviare tutte quelle e-mail ogni giorno alle 9.00, consentendomi di digitare e-mail a tarda notte ma di inviarle la mattina .

Il mio codice di seguito tuttavia non riesce nel comando di invio.

tell application "Mail"
    repeat with theMessage in (every message of (mailbox "9AM" of account "accountnamehere"))
        send theMessage
    end repeat
end tell

Ho anche provato a spostarli nella casella di posta "Posta in uscita" ma sembra che li faccia sparire ...

tell application "Mail"
    repeat with theMessage in (every message of (mailbox "9AM" of account "accountnamehere"))
        set mailbox of theMessage to mailbox "Outbox"
    end repeat
end tell

Qualche suggerimento a qualcuno? Aiuto molto apprezzato!

Questa configurazione sarebbe ideale in quanto posso lasciare acceso un Mac e persino salvare le e-mail in questa casella di posta "9AM" dal mio iPhone. Spero sia possibile.

    
posta mrmrw 09.04.2016 - 03:43
fonte

1 risposta

1

Questo non è necessariamente pensato per essere una risposta completa ed è troppo come un commento. Poiché nel dizionario AppleScript di Mail mancano alcuni verbi , ad es. send again , quindi è necessario risolvere i problemi.

Il codice qui sotto potrebbe essere incorporato nel tuo script . Utilizza Eventi di sistema per manipolare i comandi menu per inviare messaggi composti dalla casella postale designata

.

Codice di esempio:

tell application "Mail"
    activate
    repeat with theMessage in (every message of (mailbox "9AM"))
        open theMessage
        delay 1
        tell application "System Events" to click menu item "Send Again" of menu "Message" of menu bar 1 of process "Mail"
        delay 1
        tell application "System Events" to click menu item "Send" of menu "Message" of menu bar 1 of process "Mail"
        delay 1
    end repeat
end tell

Ciò che fa è automatizzare le attività che si potrebbero / dovrebbero fare manualmente per ottenere gli stessi risultati, inviando i messaggi non inviati salvati da una determinata cassetta postale .

Ciò che non fa è, se la casella di posta è diversa da Bozze , rimuovi i messaggi dalla casella di posta di destinazione e la codifica aggiuntiva sarà richiesto.

Note:

Il problema con l'automazione di una serie di attività manuali in questo modo, ovvero. Programmazione dell'interfaccia utente, è se al momento designato lo script viene eseguito e stai facendo qualcos'altro e si concentra su Mail, quindi lo script non sarà in grado di completare correttamente. Questo perché se il menu Mail non è visibile, le chiamate effettuate dagli eventi di sistema non possono essere completate.

Potrebbe essere necessario modificare il valore del comando delay , ad es. delay 1.25 , se richiesto o qualunque valore funziona sul tuo sistema. I sistemi più lenti richiedono valori di ritardo più elevati.

Ovviamente se la casella di posta di destinazione è Bozze tieni presente che, a meno che tu codice di conseguenza tutti i messaggi nel verrà inviata la casella di posta di destinazione e quindi, ad es "9AM" consente di mantenere le bozze non pronte per l'invio da inviare. Lo svantaggio di altri che utilizzano Bozze richiede la codifica aggiuntiva per rimuovere i messaggi che sono stati inviati tramite Invia di nuovo > Invia in questo modo.

    
risposta data 16.04.2016 - 15:34
fonte

Leggi altre domande sui tag