2017-07-28 7 views
0

AppleScriptについて知りましたが、私は学びつつあります。私は新しい電子メールがあるかどうか確認するために電子メールをチェックするものを作成したいと思います。はいの場合は、値(つまり「メール」)を返すようにします。そうでない場合は、別の値(「メールなし」)を返すようにします。私の考えは、これを達成するためにメールアプリケーションを使用することです。AppleScriptを使用して、未読メールをチェックすることはできますか?

メールアプリケーションの辞書(http://www.mugginsoft.com/html/kosmictask/ASDictionaryDocs/Apple/Mail/OS-X-10.7/Mail-5.2/html/)を見ると、特に未読メールを確認できないように見えるため、これは表示されません。

答えて

0

はい、可能です。私は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との同期が取れなくなります。

関連する問題