Chiedi allo Script Doctor: risoluzione dei problemi di posta

click fraud protection

AppleScript è un ottimo strumento per automatizzare le app che usi quotidianamente sul tuo Mac—Se puoi capire il codice corretto. Siamo qui per aiutarti: abbiamo chiesto all'esperto di scripting e Automator Ben Waldie di risolvere alcuni problemi dei lettori utilizzando AppleScript. L'idea non è solo quella di fornire soluzioni specifiche per problemi specifici, ma anche di dimostrarne alcune generali principi e fornire script di esempio che, con un piccolo ritocco, puoi adattare per risolverne molti altri problemi, anche. Primo: alcune domande su Mail. Avvia AppleScript Editor (/Applicazioni/Utility) e segui.

D: Ho tantissime cartelle di cassette postali in Mail, alcune delle quali sono annidate a diversi livelli di profondità. Nel corso degli anni ho archiviato migliaia di messaggi al loro interno, alcuni dei quali non ho mai contrassegnato come letti. C'è un modo per passare attraverso tutte quelle cartelle e contrassegnare tutti i messaggi come letti?

Assolutamente. Vuoi dire a Mail di impostare l'attributo dello stato di lettura di ogni messaggio non letto nella Posta in arrivo, nelle caselle di posta locali e nelle caselle di posta sul tuo server di posta su

falso. Preparati, però: a seconda del numero di messaggi e caselle di posta che hai, l'esecuzione di questa procedura potrebbe richiedere del tempo. E poiché i singoli comandi AppleScript scadono se non vengono completati entro 2 minuti, potresti anche ricevere un errore. Ecco perché è una buona idea racchiudere il tuo script in un file involucro di timeout per prevenire tali errori. Lo script seguente consente a ogni azione fino a 5 minuti di terminare; sentiti libero di aumentare il periodo di timeout se necessario.

--Consenti fino a 5 minuti con timeout di 300 secondi comunica all'applicazione "Posta" -- Elabora tutti i messaggi non letti nella posta in arrivo imposta lo stato di lettura di ogni messaggio della posta in arrivo dove il suo stato di lettura = da falso a vero - Elabora tutti i messaggi non letti sul tuo Mac locale imposta lo stato di lettura di ogni messaggio di ogni casella di posta in cui il suo stato di lettura = da falso a vero -- Elabora tutti i messaggi non letti sul tuo server di posta imposta lo stato di lettura di ogni messaggio di ogni casella di posta di ogni account in cui il suo stato di lettura = da falso a vero end tellend tempo scaduto

D: Per motivi di archiviazione al lavoro, mi è stato chiesto di stampare migliaia di messaggi e-mail di Mail in formato PDF. Come posso automatizzarlo?

Sfortunatamente, Mail non ha il supporto AppleScript integrato per salvare un messaggio come PDF, quindi la soluzione non è così semplice come potrebbe sembrare. Ma è sicuramente possibile. Il trucco è utilizzare alcuni script dell'interfaccia utente per aggirare la limitazione. Per prima cosa, vai alla preferenza del sistema di accessibilità e assicurati che il file Abilita l'accesso per i dispositivi di assistenza la casella di controllo è selezionata; Lo scripting dell'interfaccia utente non funziona a meno che questa impostazione non sia attivata.

Questo script salva il messaggio aperto in primo piano come PDF. Per elaborare più messaggi, puoi espandere lo script racchiudendolo in un ciclo ripetuto e aggiungendo una protezione dagli errori. ( Ecco una sceneggiatura che salva tutti i messaggi di posta in arrivo come PDF.)

tell application "System Events" tell process "Mail" -- Porta Mail in primo piano impostare in primo piano su true -- Selezionare la voce di menu Stampa fare clic su (prima voce di menu del menu "File" della barra dei menu 1 il cui nome inizia con "Stampa") tell window 1 -- Attendi che appaia il foglio di stampa ripeti fino a quando il foglio 1 non esiste end ripeti tell sheet 1 -- Fai clic sul pulsante PDF fai clic sul pulsante del menu "PDF" -- Seleziona Salva con nome Fare clic sulla voce di menu PDF (prima voce di menu del menu 1 del pulsante di menu "PDF" il cui nome inizia con "Salva come PDF") -- Attendi che appaia Salva come foglio ripeti finché non esiste il foglio 1 fine ripeti dillo al foglio 1 -- Passare alla sequenza di tasti del desktop "D" utilizzando il comando in basso -- Immettere un nome per la sequenza di tasti PDF "My PDF.pdf" -- Fare clic sul pulsante Salva fare clic sul pulsante "Salva" end tell end tell end tell end tellend raccontare

Tieni presente che questo script è legato all'interfaccia di Mail e che si aspetta che esistano determinati menu, pulsanti e finestre. Se Apple sposta le cose in una versione futura di OS X, potrebbe essere necessario apportare alcune modifiche allo script.

D: Quando sono in ufficio, collego il mio MacBook Air a un monitor esterno, che poi utilizzo come schermo principale; lo schermo di Air è principalmente per il mio calendario e la posta. Mi piacerebbe avere uno script che posso eseguire quando arrivo al lavoro che sposti automaticamente queste finestre dell'applicazione sullo schermo di Air e le ridimensioni. Si può fare?

Certamente. Quando sei in ufficio, sposta le finestre Calendario e Posta sullo schermo di Air e posizionale dove vuoi. Ora sei pronto per catturare i loro limiti (posizione e dimensione). Esegui ciascuno dei seguenti script in AppleScript Editor. Restituiranno i limiti nel riquadro Risultato inferiore; prendere nota dei risultati.

-- Per ottenere la posizione e la dimensione della finestra del calendario, l'applicazione "Calendario" restituisce i limiti della finestra frontale e il tell
-- Per ottenere la posizione e le dimensioni della finestra di Mail, l'applicazione "Mail" restituisce i limiti del visualizzatore di messaggi in primo pianoend tell

Diciamo che il primo script restituisce i valori {-1426, 102, -491, 930}, mentre il secondo ritorna --> {-955, 100, -7, 845}. Inserisci quei numeri nello script qui sotto. Quando esegui lo script, ridimensionerà e riposizionerà le finestre di conseguenza. Salva lo script come applicazione e trascinalo nel Dock. Ogni volta che sei in ufficio, fai clic su di esso per ripristinare le finestre. Potresti prendere in considerazione la possibilità di scrivere una seconda versione dello script per riposizionarli quando utilizzi solo lo schermo del MacBook.

-- Per impostare la posizione della finestra del calendario e la dimensione dell'applicazione "Calendario" impostare i limiti della finestra anteriore su {-1426, 102, -491, 930}end tell-- Per impostare la posizione e la dimensione della finestra di Mailtell l'applicazione "Mail" imposta i limiti del visualizzatore di messaggi in primo piano su {-955, 100, -7, 845}end raccontare

Hai un problema che lo Script Doctor potrebbe risolvere? Inviali a [email protected].

Aggiornato il 29/10/12 16:45 PT per correggere l'errore di modifica in questione relativo alla stampa su PDF.

  • Apr 17, 2023
  • 97
  • 0
instagram story viewer