7 votos

Script que genera el número de mensajes de correo electrónico en Mail.aplicación de la bandeja de entrada

Me gustaría tener un script de línea de comandos que puedo invocar a la Terminal de salida será el número total de mensajes en mi "Trabajo" de la Bandeja de entrada de correo.app. El uso tendría este aspecto:

$ inbox-count
48

¿Qué hace el Applescript de búsqueda de código de como hacer algo como esto?

18voto

TML Puntos 328

Si desea obtener el número de mensajes en dicha bandeja de entrada, la forma corta del código es

tell application "Mail" to ¬
  get the count of messages of mailbox "INBOX" of account "Work"

Si desea que el global de la bandeja de entrada, entonces usted puede utilizar get the count of messages of inbox lugar. Si usted sólo desea que los mensajes no leídos, entonces usted puede utilizar get the unread count of mailbox "INBOX" of account "Work".

Y si quieres una información más completa de comandos, en este hará el truco:

#!/usr/bin/osascript
property defaultAccount : "Work"
property defaultMailbox : "INBOX"

on run args
  set justUnread to false
  set theAccount to missing value
  set theMailbox to missing value

  if defaultAccount = missing value then set defaultAccount to "-g"
  if defaultMailbox = missing value then set defaultMailbox to "INBOX"

  set theCount to the count of args

  if theCount > 0 then
    if item 1 of args = "-u" then
      set justUnread to true
      set theCount to theCount - 1
      set args to the rest of args
    else if item 1 of args = "-ug" or item 1 of args = "-gu" then
      set justUnread to true
      set item 1 of args to "-g"
    else if theCount > 1 and ¬
            item 1 of args = "-g" and item 2 of args = "-u" then
      set justUnread to true
      set theCount to theCount - 1
      set args to the rest of args
      set item 1 of args to "-g"
    end if
  end if

  tell application "Mail"
    if theCount = 0 then
      set theAccount to defaultAccount
      set theMailbox to defaultMailbox
    else if theCount = 1 then
      set theAccount to item 1 of args
      set theMailbox to defaultMailbox
    else if theCount = 2 then
      set theAccount to item 1 of args
      set theMailbox to item 2 of args
    else
      error character id 10 ¬
          & "Usage: inbox-count [-u] [[account] mailbox]" & character id 10 ¬
          & "       inbox-count [-u] -g [mailbox]"
    end if

    set mailboxValue to missing value
    if theAccount = "-g" then
      if theMailbox = "INBOX" then
        set mailboxValue to inbox
      else
        set mailboxValue to mailbox theMailbox
      end if
    else
      set mailboxValue to mailbox theMailbox of account theAccount
    end if

    if justUnread then
      return the unread count of mailboxValue
    else
      return the count of messages of mailboxValue
    end if
  end tell
end run

La mayoría de que es la línea de comandos de análisis, debido a que es un dolor para obtener el derecho en AppleScript. Pero el resultado de todo esto es que con ese script en tu camino como inbox-count, luego los comandos siguientes trabajos:

  • inbox-count para comprobar el número de mensajes en el buzón de correo predeterminado/cuenta de par.
  • inbox-count -g para comprobar el número de mensajes en el mundial (combinado) de la bandeja de entrada.
  • inbox-count Play para comprobar el número de mensajes en el buzón de correo predeterminado para la cuenta de "Jugar".
  • inbox-count -g Important para comprobar el número de mensajes en el buzón global "Importante".
  • inbox-count Play Facebook para comprobar el número de mensajes en el buzón de "Facebook" de la cuenta de "Jugar".

También puede anteponer un -u a cualquiera de estos comandos (por ejemplo, inbox-count -u, inbox-count -ug, inbox-count -u Play Facebook) para obtener el número de mensajes no leídos. Para cambiar el valor predeterminado de la cuenta y buzón de correo, cambiar las líneas property defaultAccount : "Work" y property defaultMailbox : "INBOX". Si defaultAccount es missing value o "-g", entonces el valor predeterminado será no utilizar una cuenta; si defaultMailbox es missing value o "INBOX", entonces el valor predeterminado será utilizar un buzón de correo con nombre "INBOX" o, si la cuenta es de "-g", para utilizar el global de la bandeja de entrada.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X