Può la Mail visualizzare un count totale dei messaggi di una cartella accanto al nome della cartella?

Apple Mail visualizza il numero di messaggi non letti in each cartella nella relativa barra laterale:

immettere qui la descrizione dell'immagine

C'è un modo per farlo visualizzare il numero totale di messaggi della cartella (leggi più leggere) oltre o al posto del numero di messaggi non letti?

Plugins / hacks benvenuti, come indovina che questo non sarà un'opzione incorporata.

Poiché le hack sono benvenute:

L'idea è quella di utilizzare AppleScript per rinominare le cartelle. Per esempio:

@REPLY 

sarà rinominato a qualcosa di simile

 @REPLY (34) 

where 34 è il totale dei messaggi di @ REPLY.

L'implementazione di uno script che rinomina le cassette postali precedenti a @ è (testato su OS X 10.8.2 con account Gmail e AIM):

 -- Check whether Mail is running tell application "System Events" if not (exists (processes where name is "Mail")) then return end tell tell application "Mail" -- Loop over mail accounts repeat with myAccount in accounts -- Loop over mailboxes repeat with myMailbox in mailboxes of myAccount if name of myMailbox starts with "@" then set nameOfMyAccount to name of myAccount -- Help Mail.app's AppleScript suite cope with Gmail if nameOfMyAccount is "Gmail" then set nameOfMyMailbox to "[Gmail]/" & name of myMailbox else set nameOfMyMailbox to name of myMailbox end if set currentMessageCount to the (count of messages of mailbox nameOfMyMailbox of account nameOfMyAccount) as Unicode text set messageCountShownInMailboxName to (do shell script "echo '" & name of myMailbox & "' | /usr/bin/sed -E 's/.* \\(([0-9]+)\\)/\\1/'") as Unicode text if currentMessageCount is not equal to messageCountShownInMailboxName then -- Strip message count: "@TODO (3)" -> "@TODO" set strippedNameOfMyMailbox to do shell script "echo '" & name of myMailbox & "' | /usr/bin/sed -E 's/(.*) \\([0-9]+\\)/\\1/'" -- Append current count: ""@TODO" -> "@TODO (4)" set newMailboxName to strippedNameOfMyMailbox & " (" & currentMessageCount & ")" -- Rename mailbox set the name of mailbox nameOfMyMailbox of account nameOfMyAccount to newMailboxName end if end if end repeat end repeat end tell 

L'effetto dello script viene visualizzato nelle seguenti immagini:

immettere qui la descrizione dell'immagine

Un'altra implementazione che rinomina le cassette postali specificate in un elenco sarebbe (di nuovo testato su OS X 10.8.2 con account Gmail e AIM) ::

 -- Append message count to these mailboxes global mailboxesWithMessageCount set mailboxesWithMessageCount to {"My To Do", "To Reply", "Very Importnt"} -- Check whether Mail is running tell application "System Events" if not (exists (processes where name is "Mail")) then return end tell tell application "Mail" -- Loop over mail accounts repeat with myAccount in accounts -- Mail.app's AppleScript suite gets confused with Gmail's [Gmail] folder if name of myAccount is "Gmail" then set mailboxPrefix to "[Gmail]/" else set mailboxPrefix to "" end if -- Loop over mailboxes repeat with myMailbox in mailboxes of myAccount -- Loop over mailboxes which should get the message count appended to their names repeat with mailboxWithMessageCount in mailboxesWithMessageCount if name of myMailbox starts with mailboxWithMessageCount then set currentMessageCount to the (count of messages of mailbox (mailboxPrefix & name of myMailbox) of myAccount) as Unicode text set messageCountShownInMailboxName to (do shell script "echo '" & name of myMailbox & "' | /usr/bin/sed -E 's/.* \\(([0-9]+)\\)/\\1/'") as Unicode text if currentMessageCount is not equal to messageCountShownInMailboxName then -- Strip message count: "@TODO (3)" -> "@TODO" set strippedNameOfMyMailbox to do shell script "echo '" & name of myMailbox & "' | /usr/bin/sed -E 's/(.*) \\([0-9]+\\)/\\1/'" -- Append current count: ""@TODO" -> "@TODO (4)" set newMailboxName to strippedNameOfMyMailbox & " (" & currentMessageCount & ")" -- Rename mailbox set the name of mailbox (mailboxPrefix & name of myMailbox) of myAccount to newMailboxName end if end if end repeat end repeat end repeat end tell 

L'effetto dello script viene visualizzato nelle seguenti immagini:

immettere qui la descrizione dell'immagine

Entrambi gli script hanno impostato il numero di messaggi:

  • @REPLY -> @REPLY (34)

e, solo se necessario, cioè quando il count dei messaggi è cambiato, aggiorna:

  • @REPLY (34) -> @REPLY (29)

La mia idea originale era quella di eseguire uno degli script sopra (o una loro variante) each volta che una posta viene ricevuta con una regola in Posta> Preferenze> Regole:

immettere qui la descrizione dell'immagine

ma può anche essere aggiunto a cron per eseguire each 10 minuti come questa ( crontab (5) man page per la spiegazione della syntax crontab):

  1. Salvare lo script in /path/to/updateMailMessageCount.scpt .

  2. Aprire Terminal e digitare:

     crontab -e 

    per aprire il file crontab.

  3. Spostare con i tasti freccia fino alla fine del file, nel caso in cui ci siano altre voci, quindi premere o (lettera minuscola o), che aggiunge una row vuota e entra nella modalità di inserimento.

  4. Aggiungi questa row (i 10 significa "eseguire each 10 minuti", cambiare se necessario per soddisfare le vostre esigenze):

     */10 * * * * osascript /path/to/updateMailMessageCount.scpt >/dev/null 2>&1 
  5. Premere esc .

  6. Salva e chiudi la tua crontab con :x! ritorna (nel caso in cui qualcosa sia andato storto, digitare :q! premere return e ricominciare).

(Se hai bisogno di interrompere il cronjob, apri il file crontab con crontab -e , posiziona il cursore sopra il cronjob e digita dd per eliminarlo, quindi salva il file come spiegato in precedenza.)

È anche ansible utilizzare Servizi di lancio (vedere questo documento di sviluppo Apple ):

  1. Creare uno script denominato ~/Library/LaunchAgents/updateMailMessageCount.plist con il contenuto (600 è l'intervallo in secondi, cioè 10 minuti):

     <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>updateMailMessageCount</string> <key>ProgramArguments</key> <arrays> <string>osascript</string> <string>/path/to/updateMailMessageCount.scpt</string> </arrays> <key>StartInterval</key> <integer>600</integer> </dict> </plist> 
  2. Caricare il lavoro con:

     launchctl load ~/Library/LaunchAgents/updateMailMessageCount.plist 

(Se avete mai bisogno di fermare il lavoro, fai: launchctl unload ~/Library/LaunchAgents/updateMailMessageCount.plist .)

(Il mio preferito per tanto tempo Linux sysadmin è cron , ma nota che su OS X il cron è stato deprecato in favore del launchd . Entrambi i methods hanno funzionato sul mio Mac che esegue OS X 10.8.2.)

Se si desidera aggiornare il count dei messaggi con una scorciatoia da tastiera è ansible creare un servizio (per ulteriori informazioni, vedere http://www.macosxautomation.com/services/learn/index.html ):

  1. Chiudi la posta.

  2. Apri Automator nella cartella Applicazioni e scegli Servizio:

    immettere qui la descrizione dell'immagine

  3. Seleziona Utility in Libreria e trascina Esegui AppleScript nel riquadro vuoto a destra:

    immettere qui la descrizione dell'immagine

  4. Configurare il servizio per non ricevere alcun ingresso in Mail:

    immettere qui la descrizione dell'immagine

  5. Sostituisci la row (* Your script goes here *) con uno degli script sopra.

  6. Salvare con un nome descrittivo come Refresh Message Count . Il servizio verrà salvato in ~/Library/Services/ .

Ora impostare la scorciatoia da tastiera:

  1. Apri Preferenze di Sistema, seleziona il riquadro Preferenze tastiera e quindi la scheda Tasti di scelta rapida.

  2. Seleziona Servizi, scorri verso il basso fino al servizio che hai aggiunto precedentemente e imposta la scorciatoia da tastiera a tutto ciò che desideri con la seguente restrizione: il tuo collegamento non dovrebbe essere in conflitto con un collegamento esistente in Mail . Ho scelto l' opzione di controllo R :

    immettere qui la descrizione dell'immagine

    immettere qui la descrizione dell'immagine

  3. Apri posta. Si noti che c'è un nuovo servizio, accessibile con l' opzione di controllo R :

    immettere qui la descrizione dell'immagine

(Per il curioso: se stai chiedendo where viene Reply and Move Sent Message to Current Folder servizio Reply and Move Sent Message to Current Folder sopra, vedere Come salvare i messaggi inviati nella stessa cartella come il messaggio in cui è stato risposto?

Ora premere l' opzione di controllo R , attendere qualche secondo e osservare come viene aggiornato il numero di messaggi delle cartelle specificate nello script.

Avvertimenti :

  1. Alcune cartelle non possono essere rinominate, ad esempio [Gmail]/All Mails o le cartelle Inbox .
  2. Le cartelle non vengono rinominate in tempo reale. Ciò significa che il numero visualizzato è un valore approssimativo. Se implementi il ​​servizio, sarai in grado di aggiornarlo con l' opzione di controllo R , però.
  3. Può essere lento se si dispone di molte cassette postali o se la cassetta postale dispone di molte mail
  4. Se si specifica un insieme di cassette postali per la ridenominazione, fare attenzione a non corrispondere a altre cartelle, ad esempio "Per rispondere" corrisponderà a "Rispondere" e "Rispondere più tardi".

vantaggi:

  1. Verrà visualizzato il count dei messaggi in qualsiasi client di posta, a condizione che utilizzi Mail.app sul tuo Mac e uno di questi script.

Questo non risponde alla domanda, ma poiché la domanda incoraggia i hack e parla agli utenti potenziali che qualcuno può trovare utile:

MailMate è un grande client IMAP (pagato) OS X che support per i conteggi di cartelle fuori dal box e molto di più.

Non dispone di alcuni dei Mail.app UI di Mail.app e Sparrow.app ma costituisce in potenti funzionalità e personalizzazione.