特定のメールフォルダにルールを適用したい

Macで、ルールを適用してメールをフォルダに振り分け設定しています。

そのフォルダに対して、更にある程度の期間後、メールを削除する といったルールを適用したいと思っています。


どのようなルールを作成すればいいのかわかりません。


わかる方がおりましたら、教えてください。

よろしくお願いします。

投稿日 2016/12/13 16:49

返信
返信: 14

2017/08/18 01:12 ___saa___ への返信

特にエラーなどはなく、うまく実行できたみたいですね。 よかったです。 今後は、そのルールが適用されるたびに、処理が実行されるはずです。 AppleScriptで使えるメールアプリのコマンドやオブジェクトの一覧は、スクリプトエディタの辞書機能を使って閲覧できます。 他にも色々な処理ができますので、参考にしてみてください。


→ アプリケーションのスクリプト用語説明を表示する

→ AppleScript for Mail.app 古いメールを移動する



ゴミ箱を空にする処理は、以下のステートメントになります。


delete every message of trash mailbox

2017/08/17 23:20 ___saa___ への返信

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、再生のアイコンのボタンを押す)して、処理が正しく実行されることを確認してください。

2017/08/17 23:34 ___saa___ への返信

4)AppleScriptが正しく処理を実行する様であれば、それを以下のディレクトリに名前をつけて保存します。


~/Library/Application Scripts/com.apple.mail/


~はホームフォルダになります。 Finder.appでは、Libraryフォルダはデフォルトで非表示になっています。 表示させるためには、ホームフォルダを選択した状態で、メニューバーの表示>表示オプションのコマンドを実行すると、ライブラリを表示する為のチェックボックが表示れますので、それにチェックを入れます。 あるいは、シフトキーを押しながら、移動メニューを押すとライブラリフォルダに移動するコマンドが表示されます。


5)上記のフォルダにスクリプトを保存すると、メールアプリのルール編集画面で、スクリプトを選択できる様になります(下図)。

ユーザがアップロードしたファイル

2017/08/17 22:57 ___saa___ への返信

度々、失礼致します。 


スクリプトの編集方法について承知致しました。 手順をいくつかのコメントに分けて説明致します。 まず、お使いのMacのOSのヴァージョンを教えてください。


また、一つ訂正させてください。 上記のスクリプトでメールを削除する際にdeleteコマンドを使っていますが、この方法では、メールが一旦、削除された様に見えるのですが、サーバー上には残っている様で、復活することがあります。 なので、deleteコマンドではなく、moveコマンドを使ってメールをゴミ箱に移動させて、それを空にする処理を実行することでメールを削除することができる様です。


こちらのドキュメントも参考にしてみてください。 → AppleScript for Mail.app 古いメールを移動する

2017/08/17 22:48 T22T への返信

こんにちは、丁寧にお返事いただいていたのに

返信が大変遅くなってしまって申し訳ありません。


もしよろしければ、再度教えていただければと思います。


スクリプトを追加することで、私の希望するルールが適用されることは理解いたしました。


しかし、そのスクリプトを編集するといった作業の仕方がわかりません。

ScriptEditor.appを起動するところから詳細を教えていただけると助かります。



よろしくお願いいたします。

2017/08/18 00:14 ___saa___ への返信

MacのOSは最新のものですね。 それであれば、私と同じ環境ですので、同じ操作を検証できます。


そのまま、ファイル>保存… のコマンド(⌘S)を実行すると保存ダイアログが表示されますので、他のアプリと同じ様な操作で名前をつけます。 保存ダイアログにライブラリフォルダが表示されない場合は、一旦、保存を止めて、Finder.appでライブラリフォルダをサイドバーに登録してから(^⌘T)、再度、スクリプトエディタに戻って、保存します。

2016/12/13 19:59 ___saa___ への返信

失礼致します。 

  • Mailアプリのルールは、メッセージを受信した際に実行されます。
  • フォルダに移動するルールのアクションの下に、『AppleScriptを実行』のアクションを追加してやると、メッセージを特定のフォルダ(メールボックス)に移動した後に、AppleScritを実行できます。
  • 例えば、iCloudアカウントにある”Temp”という名前のフォルダ(メールボックス)にあるメッセージの内、1週間前以前に受信したメッセージを削除(ゴミ箱に移動)するApple Scriptは、以下のようになります。 メールアカウントやフォルダの名前はお使いのものに書き直してください。


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 のフォルダに保存します。 

2017/08/17 23:01 ___saa___ への返信

ます、スプリプトエディタ.appは、アプリケーションフォルダの中にある、ユーティリティという名前のフォルダの中にあります。 それを起動してください。 Spotlight検索(⌘+Space)で、Script Editor.app と入力してリターンキーを押すことでも起動できますよ。

2017/08/18 00:03 T22T への返信

早速のお返事ありがとうございます。


バージョンは10.12.6を使用しております。


いま、4)まで進んだところです。

名前をつけて保存するというのは、ファイル>名称変更 でよいのでしょうか?

4)がわからないので、教えていただきたいです。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

特定のメールフォルダにルールを適用したい

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。