はい、可能です。私はGeektoolでshow a list of read messagesに使っていましたが、私はまだそれを扱っていませんでした。
あなたの場合は、未読メッセージのリストを残したくないので、それが見つかったらただちに終了するだけで簡単です。
あなたが探しているフラグは、「ステータスの読み取り」です。
tell application "Mail"
if exists (messages of inbox whose read status is false) then
"Mail"
else
"No Mail"
end if
end tell
特定のメールボックスを探している必要があります。この場合、私はinbox
を見ています。ルールを使用して他のメールボックスにメッセージを事前配信する場合は、AppleScriptを使用して各メールボックスを個別にチェックすることなくこれを行う方法は認識していません。 (それは直接メールのデータベースファイル上のsqliteを使用して可能であるかもしれないけど。)あなたが他のメールボックス内の未読メールを探すために必要がある場合
また、これはうまくいくかもしれない:
tell application "Mail"
if exists (messages of inbox whose read status is false) then
return "Mail"
else
repeat with box in mailboxes
tell box
if exists (messages whose read status is false) then
return "Mail"
end if
end tell
end repeat
end if
return "No Mail"
end tell
しかし、私の事例の経験があればということですあなたは複雑な設定をしています。このようなスクリプトを実行すると、Mailのスマートなメールボックスとその中のメッセージのread status
との同期が取れなくなります。