特定のメールフォルダにルールを適用したい
Macで、ルールを適用してメールをフォルダに振り分け設定しています。
そのフォルダに対して、更にある程度の期間後、メールを削除する といったルールを適用したいと思っています。
どのようなルールを作成すればいいのかわかりません。
わかる方がおりましたら、教えてください。
よろしくお願いします。
Macで、ルールを適用してメールをフォルダに振り分け設定しています。
そのフォルダに対して、更にある程度の期間後、メールを削除する といったルールを適用したいと思っています。
どのようなルールを作成すればいいのかわかりません。
わかる方がおりましたら、教えてください。
よろしくお願いします。
特にエラーなどはなく、うまく実行できたみたいですね。 よかったです。 今後は、そのルールが適用されるたびに、処理が実行されるはずです。 AppleScriptで使えるメールアプリのコマンドやオブジェクトの一覧は、スクリプトエディタの辞書機能を使って閲覧できます。 他にも色々な処理ができますので、参考にしてみてください。
→ AppleScript for Mail.app 古いメールを移動する
ゴミ箱を空にする処理は、以下のステートメントになります。
delete every message of trash mailbox
1)スクリプトエディタが起動すると、エディタのウィンドウが表示されます(下図)。 ウィンドウが表示されない場合は、メニューバーのファイル>新規(⌘N)で、新規書類を作成します。
2)ウィンドウの編集画面に以下のステートメンツをコピペしてください。
set aDateLimit to (current date) - 2 * weeks
tell application "Mail"
activate
set theMailbox to mailbox "Shopping" of account "iCloud"
move (messages of theMailbox whose date received is less than aDateLimit) to trash mailbox
endtell
この例では、iCloudアカントにある、Shoppingという名前のメールボックス(フォルダ)にあるめーるの内、受信日が現在の日付よりも2週間ほど経過したメールを、ゴミ箱に移動します。 アカウント名やメールボックスの名前はお使いのものに変更してください。 また、2週間ではなく、1週間の場合は、 - 1 * weeks、5日の場合は、 -1 * daysとします。 monthsやyearsの単語を使うとエラーになります。 そして、ウィンドウのツールバーにある、ハンマーのアイコンのボタンを押して、コンパイルします(⌘K)。 activateはメールアプリを最前面に表示します。 他のアプリを使っている時に、スクリプトが実行されれるとメールアプリに切り替わってしまいますので、不要ならば、activateのコマンドを削除してください。 --activate とするとコメント扱いになるので、実行されません。
3)エラーが出なければ、スクリプトを実行(⌘R、再生のアイコンのボタンを押す)して、処理が正しく実行されることを確認してください。
4)AppleScriptが正しく処理を実行する様であれば、それを以下のディレクトリに名前をつけて保存します。
~/Library/Application Scripts/com.apple.mail/
~はホームフォルダになります。 Finder.appでは、Libraryフォルダはデフォルトで非表示になっています。 表示させるためには、ホームフォルダを選択した状態で、メニューバーの表示>表示オプションのコマンドを実行すると、ライブラリを表示する為のチェックボックが表示れますので、それにチェックを入れます。 あるいは、シフトキーを押しながら、移動メニューを押すとライブラリフォルダに移動するコマンドが表示されます。
5)上記のフォルダにスクリプトを保存すると、メールアプリのルール編集画面で、スクリプトを選択できる様になります(下図)。
度々、失礼致します。
スクリプトの編集方法について承知致しました。 手順をいくつかのコメントに分けて説明致します。 まず、お使いのMacのOSのヴァージョンを教えてください。
また、一つ訂正させてください。 上記のスクリプトでメールを削除する際にdeleteコマンドを使っていますが、この方法では、メールが一旦、削除された様に見えるのですが、サーバー上には残っている様で、復活することがあります。 なので、deleteコマンドではなく、moveコマンドを使ってメールをゴミ箱に移動させて、それを空にする処理を実行することでメールを削除することができる様です。
こちらのドキュメントも参考にしてみてください。 → AppleScript for Mail.app 古いメールを移動する
こんにちは、丁寧にお返事いただいていたのに
返信が大変遅くなってしまって申し訳ありません。
もしよろしければ、再度教えていただければと思います。
スクリプトを追加することで、私の希望するルールが適用されることは理解いたしました。
しかし、そのスクリプトを編集するといった作業の仕方がわかりません。
ScriptEditor.appを起動するところから詳細を教えていただけると助かります。
よろしくお願いいたします。
MacのOSは最新のものですね。 それであれば、私と同じ環境ですので、同じ操作を検証できます。
そのまま、ファイル>保存… のコマンド(⌘S)を実行すると保存ダイアログが表示されますので、他のアプリと同じ様な操作で名前をつけます。 保存ダイアログにライブラリフォルダが表示されない場合は、一旦、保存を止めて、Finder.appでライブラリフォルダをサイドバーに登録してから(^⌘T)、再度、スクリプトエディタに戻って、保存します。
失礼致します。
set theLimit to (current date) - 1 * weeks # - 7 * daysでも良い
using terms from application "Mail"
on perform mail action with messagestheMessagesfor ruletheRule
tell application "Mail"
set theMailBox to mailbox "Temp" of account "iCloud"
delete (messages of theMailBox whose date received is less than theLimit)
end tell
end perform mail action with messages
end using terms from
これを、ScriptEditor.appを起動した時のウィンドウにコピペして、コンパイル(ハンマーの形をしたアイコンを押す)した後、~/Library/Application Scripts/com.apple.mail のフォルダに保存します。
追記:もしも解りづらい部分がありましたら、お知らせ下さい。
ます、スプリプトエディタ.appは、アプリケーションフォルダの中にある、ユーティリティという名前のフォルダの中にあります。 それを起動してください。 Spotlight検索(⌘+Space)で、Script Editor.app と入力してリターンキーを押すことでも起動できますよ。
以上が一連の手順になります。 不明な点があれば、ご遠慮なくお伝え下さい。
早速のお返事ありがとうございます。
バージョンは10.12.6を使用しております。
いま、4)まで進んだところです。
名前をつけて保存するというのは、ファイル>名称変更 でよいのでしょうか?
4)がわからないので、教えていただきたいです。
訂正:5日の場合は、 -5 * daysとします。
ありがとうございます。
ルールの最後にスクリプトを追加することができました。
ご丁寧に教えていただき、本当にありがとうございました。
ありがとうございます。
また何か必要になれば使ってみたいと思います。
特定のメールフォルダにルールを適用したい