Mailで特定のアドレスから受信した添付ファイルを指定のフォルダに自動保存する方法

Mailで特定のアドレスから受信した添付ファイルを指定のフォルダに自動保存する方法



はじめまして。



https://discussionsjapan.apple.com/thread/10052314

https://discussionsjapan.apple.com/thread/10125572

https://discussionsjapan.apple.com/thread/10126106

などを参考に試したのですが、うまくいきません。



Mailで、特定のアドレスから受信した添付ファイル(画像データ)を、HD内に作った1つのフォルダに自動保存する方法を教えてください。



今している作業を具体的に言います。

特定のアドレス(ipad)から送られてきた受信メールが1,000件を超しています。そのメールは全て、本文なしで画像が1点添付されているものです。

その受信メールを、1つずつ開いて1つの同じフォルダ内に保存しています。添付ファイルのファイル名が同じなので、手作業でリネームして保存している状態です。

この作業を省略or自動でできる方法を知りたいです。

(「受信メールから保存(添付画像のみ)したいメールを選択」→「コマンド(?)を実行」→「指定したフォルダ内に添付画像が全て保存される(自動で同じファイル名はリネーム)」といった作業)



Automatorを使ってできますか?また、MailのルールでApplescriptを実行するとできますでしょうか。他にも方法があれば知りたいです。



K*さんと同じで、Applescriptの知識がありません。

Mailのルールで出来る場合、スクリプトを記述していただけますと助かります。

Automatorも使ったことがないので、分かりやすく教えていただけると助かります。。



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

iMac, Mac OS X (10.6.8)

投稿日 2013/12/19 22:25

返信
返信: 6

2013/12/19 23:56 tyamaran への返信

失礼致します。 メールアプリのルールでAppleScriptを実行する設定があるので、それを利用するとよいと考えます。 以下のAppleScriptはどうでしょうか?


using terms from application "Mail"

on perform mail action with messagesmessageList

tell application "Mail"

repeat with eachMessage in messageList

if (mail attachments of eachMessageexists) then # 添付ファイルがあるかどうかを確認

set attachmentList to (get mail attachments of eachMessage) # 添付ファイルリスト作成

repeat with eachAttachment in attachmentList# 添付ファイル毎に繰り返し

set fileName to name of eachAttachment# 添付ファイルの名前を取得



-- 添付ファイルをフォルダに保存(例:デスクトップにあるScreen Shotsフォルダ)

save eachAttachment in file ("Mavericks:Users:T22T:Desktop:Screen Shots:" & fileName)


-- ”MavericksShots:”の部分をご利用の環境にあわせて変更する必要があります。


-- AppleScritエディタで choose folderコマンドを実行してフォルダを選択した時に返される文字列を入れるとよいです。


end repeat

end if

end repeat

end tell

end perform mail action with messages

end using terms from

2013/12/19 23:59 tyamaran への返信

もし今後恒久的に同じ動作を行うのではなく、現状受信しているメールに関してのみおこないたいのであれば簡単な方法が有ります。


1.スマートメールフォルダを以下の要領で作ります。

以下の全ての条件に一致する物を集める

差出人:当該送信者のメールアドレス

添付ファイルのタイプ:イメージ

2.当該スマートメールフォルダ内のメールを全部選択した状態で ファイル>添付ファイルを保存 を実行して任意のディレクトリにイメージを保存


これで同名のファイルが有ってもリネームして保存してくれます。

2013/12/20 01:27 T22T への返信

T22Tさん ありがとうございます。

はじめて、うまくスクリプトを実行することができました!

添付ファイルが同じファイル名の場合、上書き状態になってしまいます。。

添付ファイルが違うファイル名ですと、うまくそれぞれフォルダに保存されました。

これは、同じファイル名の場合は無理なんでしょうか。。

2013/12/20 01:38 やすどん への返信

やすどんさん ありがとうございます。

思い描いていた通りの作業が実行できました!

これで1,000件分のメールを無事処理できそうです。

実は、今は別のパソコン(iMac上のMail)でテストで実行していました。

macbook pro のMail内にその問題の受信メールがあるので、早速実行してみようと思います。

本当にどうもありがとうございました。

2013/12/20 03:59 tyamaran への返信

度々、失礼致します。 済みません、ファイル名が重複するときの処理を忘れていました。 以下のAppleScriptはどうでしょう? 重複がある場合は、ファイル名の前に数字を付けてくれます。 ご確認下さい。


using terms from application "Mail"

on perform mail action with messagesmessageList

tell application "Mail"

repeat with eachMessage in messageList

if (mail attachments of eachMessageexists) then # 添付ファイルがあるかどうかを確認

set attachmentList to (get mail attachments of eachMessage)

repeat with eachAttachment in attachmentList

set fileName to name of eachAttachment

set theFolder to "Mavericks:Users:T22T:Desktop:Screen Shots:"


-- ”MavericksShots:”の部分をご利用の環境にあわせて変更する必要があります。


set fileName to my checkFileAndRename(fileName, theFolder)

saveeachAttachmentinfile (theFolder & fileName)

end repeat

end if

end repeat

end tell

end perform mail action with messages

end using terms from



on checkFileAndRename(theName, theFolder)

tell application "Finder"

set i to 1

set originalName to theName

repeat while (file theName of folder theFolder exists)

set theName to (i as text) & " " & originalName

set i to i + 1

end repeat

end tell

return theName

end checkFileAndRename

2013/12/23 17:29 T22T への返信

T22Tさん

遅くなりましたが、度々スプリクトを記述していただきありがとうございました。

こちらでうまく、添付画像が自動にリネームされました!



>”Mavericks〜Shots:”の部分をご利用の環境にあわせて変更する必要があります。

>-- AppleScritエディタで choose folderコマンドを実行してフォルダを選択した時に返される文字列を入れるとよいです。



といった返信も大変参考になり、助かりました。



どうもありがとうございました。

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

Mailで特定のアドレスから受信した添付ファイルを指定のフォルダに自動保存する方法

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