Desde hacks son bienvenidos:
La idea es utilizar AppleScript para cambiar el nombre de carpetas. Por ejemplo:
@REPLY
se cambiará el nombre a algo como
@REPLY (34)
donde 34 es @RESPUESTA total de la cuenta de mensajes.
De trabajo la implementación de un script que cambia el nombre de los buzones de correo con el prefijo @
es (probado en OS X 10.8.2 con Gmail y a FIN de cuentas):
-- 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
El efecto de la secuencia de comandos se muestra en las siguientes capturas de pantalla:
Otra aplicación que sólo cambia el nombre de los buzones de correo especificado en una lista (de nuevo, probado en OS X 10.8.2 con Gmail y a FIN de cuentas)::
-- Append message count to these mailboxes
global mailboxesWithMessageCount
set mailboxesWithMessageCount to {"My To Do", "To Reply", "Very Important"}
-- 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
El efecto de la secuencia de comandos se muestra en las siguientes capturas de pantalla:
Ambos scripts de establecer el número de mensajes:
y, sólo si es necesario, es decir, cuando el número de mensajes ha cambiado, la actualización:
-
@REPLY (34)
-> @REPLY (29)
Mi idea original era para ejecutar una de las secuencias de comandos de arriba (o alguna variación del mismo) cada vez que un correo sea recibido con una regla de Correo>Preferencias>Reglas:
pero también puede ser añadido a cron
para que se ejecute cada 10 minutos como este (ver crontab (5) página man crontab para la sintaxis de la explicación):
Guardar la secuencia de comandos a /path/to/updateMailMessageCount.scpt
.
-
Abre el Terminal y teclea:
crontab -e
para abrir su archivo crontab.
Mover con las teclas de flecha para el final del archivo, en caso de que existan otras entradas, y pulse o
(letra minúscula o), el cual añade una línea en blanco y entra en el modo de inserción.
-
Agregar esta línea (la 10
significa "que salen cada 10 minutos", el cambio necesario para que coincida con sus necesidades):
*/10 * * * * osascript /path/to/updateMailMessageCount.scpt >/dev/null 2>&1
Pulse esc.
Guarde y cierre el crontab con :x!
de devolución (en caso de que algo salió mal, escriba :q!
, pulse volver y empezar de nuevo).
(Si alguna vez la necesidad de detener el cronjob, abrir su archivo crontab con crontab -e
, coloque el cursor sobre el cronjob y escriba dd
a eliminar. A continuación, guarde el archivo como se explicó anteriormente.)
Usted puede utilizar los Servicios de Lanzamiento, (ver este desarrollador de Apple documento):
-
Crear un script llamado ~/Library/LaunchAgents/updateMailMessageCount.plist
con contenido (600 es el intervalo, en segundos, es decir, 10 minutos):
<?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>
<array>
<string>osascript</string>
<string>/path/to/updateMailMessageCount.scpt</string>
</array>
<key>StartInterval</key>
<integer>600</integer>
</dict>
</plist>
-
Cargar el trabajo con:
launchctl load ~/Library/LaunchAgents/updateMailMessageCount.plist
(Si alguna vez la necesidad de detener el trabajo, hacer: launchctl unload ~/Library/LaunchAgents/updateMailMessageCount.plist
.)
(Mi favorito ya que en tiempo de Linux sysadmin cron
, pero tenga en cuenta que, en OS X, cron
ha sido despreciado en favor de launchd. Ambos métodos se trabajó en mi Mac con OS X 10.8.2.)
Si desea actualizar el mensaje de contar con un método abreviado de teclado puede crear un servicio (ver http://www.macosxautomation.com/services/learn/index.html para obtener más información):
Cierre De Correo.
-
Abrir Automator en la carpeta de Aplicaciones y seleccione el Servicio de:
-
Seleccione Utilidades en Biblioteca y arrastre Ejecutar AppleScript para el vacío panel de la derecha:
-
Configurar el servicio para recibir ninguna entrada en el Correo:
Reemplace la línea (* Your script goes here *)
con uno de los guiones anteriores.
Guardar con un nombre descriptivo, como Refresh Message Count
. El servicio será guardado en ~/Library/Services/
.
Ahora configurar el atajo de teclado:
Abra Preferencias del Sistema, seleccione el panel de preferencias Teclado y, a continuación, la ficha métodos Abreviados de Teclado.
-
Seleccione Servicios, desplácese hacia abajo para el servicio de que se haya agregado anteriormente y establecer el método abreviado de teclado a lo que usted desea con la siguiente restricción: el acceso directo no debería entrar en conflicto con un acceso directo existente en el Correo. He elegido controlopción⌘R:
-
Abrir El Correo. Tenga en cuenta que hay un nuevo servicio, accesible con el controlde la opción de⌘R:
(Para los curiosos: si usted se está preguntando dónde servicio Reply and Move Sent Message to Current Folder
de arriba viene, consulte Cómo guardar los mensajes enviados en la misma carpeta que el mensaje que se respondió? -- advertencia: enchufe descarado.)
Ahora presione el control deopción⌘R, espere unos segundos y ver cómo el número de mensajes de las carpetas especificadas en la secuencia de comandos se actualiza.
Advertencias:
- Algunas carpetas no se pueden cambiar de nombre, como
[Gmail]/All Mails
o de la Inbox
carpetas.
- Las carpetas no cambian en tiempo real. Eso significa que el número que se ve es un valor aproximado. En el caso de implementar el servicio, usted será capaz de actualizar con el controlde la opción de⌘R, aunque.
- Puede ser lento si usted tiene muchos de los buzones de correo, o si el buzón tiene muchos mails
- Si se especifica un conjunto de buzones de correo para cambiar el nombre, tenga cuidado de que no coincidan con otras carpetas, por ejemplo, "Respuesta" partido "Responder" y "Para Responder más Tarde".
Ventajas:
- Podrás ver el número de mensajes en cualquier cliente de correo, siempre y cuando se use el Correo.aplicación en tu Mac y uno de estos scripts.