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.