8 votes

script qui sort le nombre d'emails dans la boîte de réception de Mail.app.

J'aimerais avoir une ligne de commande script que je peux invoquer dans le Terminal qui affichera le nombre total de messages dans ma boîte de réception "Travail" dans mail.app. L'utilisation ressemblerait à ceci :

$ inbox-count
48

À quoi ressemble le code Applescript pour faire quelque chose comme ça ?

19voto

Si vous voulez obtenir le nombre de messages dans votre boîte de réception, la forme courte du code est la suivante

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

Si vous voulez la boîte de réception globale, alors vous pouvez utiliser get the count of messages of inbox à la place. Si vous voulez seulement les messages non lus, vous pouvez utiliser get the unread count of mailbox "INBOX" of account "Work" .

Et si vous voulez un script plus complet, cela fera l'affaire :

#!/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

Il s'agit principalement de l'analyse de la ligne de commande, car c'est une tâche difficile à réaliser en AppleScript. Mais le résultat est qu'avec ce script dans votre chemin en tant que inbox-count alors les commandes suivantes fonctionnent :

  • inbox-count pour vérifier le nombre de messages dans la paire boîte aux lettres/compte par défaut.
  • inbox-count -g pour vérifier le nombre de messages dans la boîte de réception globale (combinée).
  • inbox-count Play pour vérifier le nombre de messages dans la boîte aux lettres par défaut pour le compte "Play".
  • inbox-count -g Important pour vérifier le nombre de messages dans la boîte aux lettres globale "Important".
  • inbox-count Play Facebook pour vérifier le nombre de messages dans la boîte aux lettres "Facebook" pour le compte "Play".

Vous pouvez également ajouter un -u à l'une de ces commandes ( par exemple , inbox-count -u , inbox-count -ug , inbox-count -u Play Facebook ) pour obtenir uniquement le nombre de messages non lus. Pour changer le compte et la boîte aux lettres par défaut, changez les lignes property defaultAccount : "Work" y property defaultMailbox : "INBOX" . Si defaultAccount est missing value o "-g" alors la valeur par défaut sera de ne pas utiliser de compte. defaultMailbox est missing value o "INBOX" alors la valeur par défaut sera d'utiliser une boîte aux lettres nommée "INBOX" ou, si le compte est "-g" pour utiliser la boîte de réception globale.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X