-- hubionmac.com 2010-01
-- script to be added to a Apple Mail rule
--saves attachmens of new mails into a folder
on perform_mail_action(info)
tell application "Mail"
tell application "Finder" to set mypath to (folder "Mail Attachments Saved" of desktop) as text
set theMessages to |SelectedMessages| of info
repeat with thisMessage in theMessages
try
repeat with a in (every mail attachment of thisMessage)
set current_a_name to name of a
set current_a_name to my checkname_with_pdf_suffix(current_a_name, mypath as alias, false)
save a in mypath & current_a_name
end repeat
on error msg
do shell script "echo " & quoted form of msg & " | cat>>~/Desktop/MailscriptErrorLog.txt"
end try
end repeat
end tell
end perform_mail_action
on checkname_with_pdf_suffix(n, D, looped)
tell application "Finder"
set thefiles to name of every item of (D as alias)
end tell
if thefiles contains n then
if looped = false then
set n to ((characters 1 through -5 of n) & " 1" & (characters -4 through -1 of n)) as text
my checkname_with_pdf_suffix(n, D, true)
else
set tmp to (last word of ((characters 1 through -5 of n) as text) as integer)
set tmpcount to (count of characters of (tmp as text)) + 5
set tmp to tmp + 1
set n to ((characters 1 through (-1 * tmpcount) of n) & tmp & (characters -4 through -1 of n)) as text
my checkname_with_pdf_suffix(n, D, true)
end if
else
return n
end if
end checkname_with_pdf_suffix
7 Comments
das script ist ja fantastisch :)
1 fragen habe ich allerdings:
ich möchte gerne mehrere mails > 300 gleichzeitig so abarbeiten. was müsste ich im script ändern?
grüsse aus der schweiz,
abi
Eigentlich musst Du nur etwas weg nehmen.
on perform_mail_action(info)undend perform_mail_action(info)Das ist alles. Dann einfach die betreffenden Emails auswählen und das Skript anfeuern.
Hallo zusammen,
wie kann ich das Script nur für bestimmte Anhänge verwenden?
Also Anhänge, mit bestimmten Namen oder Mails mit bestimmtem Betreff.
Danke & Viele Grüße
der Vati
Schau' doch mal in den Regeln in Mail nach.. dort kannst Du den Betreff und den Namen des Attachments mit als Bedingung angeben.
Hallo Hubi,
ich hab schon alles voreingestellt. Ich kann die Mail auch gut über Regeln selektieren. Nun möchte ich, dass das script den Anhang der selektierten Mail in einem bestimmten Pfad speichert und falls die Datei dort schon existiert, soll er diese mit der neueren ersetzen.
Hier fehlt mir aber leider das Know-how. Ich kenne mich nur etwas mit VBA aus.
Danke & Viele Grüße
der Vati
Schau' Dir doch mal an, wie die Variable mypath gesetzt wird und lasse mal die Zeile vor dem sichern der Datei (save a in mypath.... ) mal weg, ich denke das sollte es sein....
Sorry aber ich bin echt neu in sowas. check nicht wo ich den pfad setze wo der anhang hingespeichert werden soll...
One Trackback
[...] eine leicht erweiterte Version diese Skriptes.... Code zum markieren einmal anklicken Code im Skript-Editor [...]