Yosemite Mail caching i file delle firme? Come posso aggirarlo?

1

Ho creato un piccolo script che cerca una firma casuale da un elenco sempre crescente di citazioni che ho e modifica l'HTML del mio file di firma per inserire la citazione in posizione. Attivo questo script via launchd ogni pochi minuti in modo che la mia firma sia "randomizzata" per tutto il giorno.

Fino a Mavericks, questo ha funzionato bene. Ora, in Yosemite (10.10), la firma non viene più aggiornata. Se vado in Prefs - > Firme e trascinare / rilasciare la firma dalla lista 'Tutti' sul mio account di posta elettronica, lo attiverà per l'aggiornamento. Si aggiorna anche quando riavvio Mail. Sembra che Mail stia memorizzando nella cache il contenuto del file della firma e lo aggiorna solo quando viene "attivato" in qualche modo.

So che ora ci sono due possibili copie del file della firma: una versione locale e iCloud. Ho aggiornato il mio script per assicurarmi che entrambi stiano utilizzando la firma aggiornata. Se riavvio la posta o eseguo il trucco delle prefs, mostra la citazione aggiornata nella firma, quindi so che il mio script sta funzionando correttamente.

Qualcuno sa qualcosa su questa cache e / o su come posso attivare Mail per aggiornare la firma con il mio script o qualche altro trucco? Non sono nemmeno sicuro da dove cominciare a cercare questo genere di cose.

    
posta James Alday 31.10.2014 - 17:03
fonte

1 risposta

0

Ho avuto lo stesso problema di te. Ho fatto un po 'di ricerche e ho trovato una soluzione che funzionava di nuovo in OSX 10.8 giorni e ha smesso di funzionare con OSX 10.9. Stranamente, funziona di nuovo con OSX 10.10.1 e Mail 8.1 (1993).

Ci sono molte parti in questo: un AppleScript che si compila in un'applicazione, un file di testo contenente le virgolette casuali, due firme in Mail.app (una è un modello, l'altra è la firma effettiva per i messaggi), e il servizio di sistema 'cron'. (Idealmente dovresti usare launchd, ma non ho ancora fatto molto.)

AppleScript:

if application "Mail" is running then
    set AppleScript's text item delimiters to "~###~"
    set myQuote to some text item of (read "/Users/Steve/.sigs.in")
    tell application "Mail"
       set the content of signature "MySignature" to the content of signature "MyTemplate" & myQuote
    end tell
end if

Nella mia implementazione (che puoi dedurre da AppleScript):

  • Le mie due firme Mail.app si chiamano "MyTemplate" e "MySignature". "MyTemplate" contiene tutto ciò che è statico, cose come la mia email indirizzo, ecc. "MySignature" è quella che uso con i miei messaggi.

  • Il file di testo che contiene le mie virgolette è chiamato ".sigs.in" (in modo che non appaia nelle finestre del Finder) e tutte le virgolette siano separati da una linea che contiene solo "~ ### ~". Questo file risiede nella mia directory home.

  • La mia voce crontab consiste di

    * * * * * /Users/Steve/bin/MailRandomSig.app/Contents/MacOS/applet 

L'AppleScript compilato risiede in / Users / Steve / bin (ovviamente abbastanza), e la parte "applet" è l'effettivo binario compilato che vogliamo eseguire.

Ho provato questo e funziona magnificamente. Ogni minuto, cron avvia il mio script compilato che aggiorna la firma.

L'unico "svantaggio" è che se non ti piace la citazione devi aspettare un minuto perché lo script aggiorni la firma e quindi riselezionare la firma dal selettore a discesa nella finestra di composizione del messaggio. (Ho due firme - una statica, l'altra l'output del mio script - per aggirare questo.)

    
risposta data 26.11.2014 - 08:54
fonte

Leggi altre domande sui tag