Se si desidera ottenere il numero di messaggi in detta casella di posta, la forma abbreviata del codice è
tell application "Mail" to ¬
get the count of messages of mailbox "INBOX" of account "Work"
Se desideri la posta in arrivo globale, puoi utilizzare get the count of messages of inbox
. Se desideri solo messaggi non letti, puoi utilizzare get the unread count of mailbox "INBOX" of account "Work"
.
E se vuoi uno script più completo, questo farà il trucco:
#!/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 maggior parte di ciò è l'analisi della riga di comando, perché è un problema avere ragione in AppleScript. Ma il risultato è che con quello script nel tuo percorso come inbox-count
, i seguenti comandi funzionano:
-
inbox-count
per controllare il numero di messaggi nella coppia predefinita di casella postale / account.
-
inbox-count -g
per controllare il numero di messaggi nella posta in arrivo globale (combinata).
-
inbox-count Play
per verificare il numero di messaggi nella casella di posta predefinita per l'account "Riproduci".
-
inbox-count -g Important
per controllare il numero di messaggi nella casella postale globale "Importante".
-
inbox-count Play Facebook
per controllare il numero di messaggi nella casella "Facebook" per l'account "Riproduci".
Puoi anche anteporre un -u
a uno qualsiasi di questi comandi ( per esempio , inbox-count -u
, inbox-count -ug
, inbox-count -u Play Facebook
) per ottenere il conteggio non letto. Per modificare l'account e la cassetta postale predefiniti, modifica le righe property defaultAccount : "Work"
e property defaultMailbox : "INBOX"
. Se defaultAccount
è missing value
o "-g"
, il valore predefinito sarà quello di non utilizzare un account; se defaultMailbox
è missing value
o "INBOX"
, il valore predefinito sarà utilizzare una cassetta postale denominata "INBOX"
oppure, se l'account è "-g"
, utilizzare la Posta in arrivo globale.