Mail.app上で選択中のメールボックス(フォルダ)のパスをフルパスの文字列で求めるAppleScriptです。
Mail.app上ではメールボックス(フォルダ)を複数階層作成できます。ファイルシステム上のフォルダではないので、ファイル処理でメールのメールボックス(フォルダ)間の移動を行うことはできませんが、パスを指定してmoveコマンドでメールを移動させられます。
Mail.app上のパスは、
level1/level2
のように記述します。
のように選択している場合には、
"ML/Xojo, REALbasic"
と返ってきます。
tell application "Mail"
tell mailbox "ML/Xojo, REALbasic"
set aList to every message
end tell
end tell
★Click Here to Open This Script
のように指定すれば、指定フォルダ以下のメール(message)が返ってきます(サブフォルダ内のメールは対象外)。ファイルパスと異なり、空白文字が入ってくることに備えてquoted ofでパスをクォート処理しておく必要はありません。
フルパスを求めるのに、再帰処理を行なっています。
AppleScript名:Mail.appで選択中のメールボックス(フォルダ)のパスを文字列で返す |
property aFullPath : ""
set aFullPath to ""
–選択中のメールボックス(フォルダ)を取得 set aMB to getSelectedOneMailBox() of me –メールボックス(フォルダ)のオブジェクトのMail.app上のパスを取得して文字列化する set pathStr to extraxctTextFullPathOfMBObject(aMB) of me return aFullPath –> "ML/Xojo, REALbasic" –Message Viewerで現在表示中のメールボックスの情報を1つのみ返す on getSelectedOneMailBox() tell application "Mail" tell message viewer 1 set mbList to selected mailboxes end tell end tell if length of mbList is equal to 0 then return "" end if set aMailBox to contents of (item 1 of mbList) return aMailBox end getSelectedOneMailBox –Mail.appのメールボックスオブジェクトを渡すと、テキストのフルパスに変換 on extraxctTextFullPathOfMBObject(aPath) tell application "Mail" try set parentPath to container of aPath on error return end try set meName to name of aPath if aFullPath = "" then –1回目のみスラッシュを入れないで処理 set aFullPath to meName else –通常処理はこちら set aFullPath to meName & "/" & aFullPath end if extraxctTextFullPathOfMBObject(parentPath) of me –再帰呼び出し end tell end extraxctTextFullPathOfMBObject |
More from my site
(Visited 68 times, 1 visits today)