Hai omesso la linea di chiusura nel blocco using terms from...
.
▸ Aggiungi end using terms from
alla fine del tuo script.
Tuttavia, lo script incontrerà un errore, dato che la variabile
theAttachment
non è definita.
Su note meno importanti, non è necessario dichiarare attachmentsFolder
come classe Unicode Text
, poiché hai già espresso il valore della variabile come stringa (che è testo unicode). Dal momento che si tratta di una cartella che stai specificando, il percorso HFS dovrebbe avere un punto finale, che hai omesso. Questo in realtà causerebbe un altro errore quando lo si concatena con il nome del file. In effetti, non è necessario utilizzare i percorsi HFS quando si fornisce un percorso alla posizione in cui l'allegato deve essere salvato. Una stringa di percorso POSIX è interamente accettabile e in realtà preferibile. Quindi, sarebbe simile a questo:
set attachmentsFolder to "/Users/John/Dropbox/John & Julie/Wirecard/"
set savePath to the attachmentsFolder & (the name of theAttachment)
save theAttachment in POSIX file savePath
Direi anche che il try
... end try
non è necessario e che ostacola: se c'è stato un errore nel comando save
(che ci sarà come al momento attuale, dati i due punti omessi nella stringa del percorso), passerebbe inosservato e il tuo allegato semplicemente non verrebbe salvato, ma non avresti idea del motivo fino a quando non rimuovi il try
... end try
enclosure.
Ma la ragione per cui non ne hai davvero bisogno è perché non c'è motivo di mettere a tacere gli errori a questo punto dello script. È l'ultimo comando, quindi se lo script termina a causa di un errore, non importa. Tipicamente, il blocco try
sarebbe utile se ci fossero più comandi da seguire in seguito, e non volevi che l'errore di salvare l'allegato impedisse l'esecuzione del resto dello script.
L'implementazione di queste modifiche si tradurrebbe in uno script revisionato:
using terms from application "Mail"
on perform mail action with messages theMessages for rule theRule
set attachmentsFolder to "/Users/John/Dropbox/John & Julie/Wirecard/"
tell application "Mail"
set savePath to the attachmentsFolder & the name of theAttachment
with timeout of 1800 seconds -- 30 minutes!
save theAttachment in POSIX file savePath
end timeout
end tell
end perform mail action with messages
end using terms from
(Sebbene sia ancora necessario definire la variabile theAttachment
.)