Ist jetzt zwar nicht mehr ganz so simpel und “elegant” wie die erste Version, dafür kommt das Ding nun aber mit existierenden Unterordner und POP-Accounts (bisher nur IMAP) klar.
— MoveMailTo
— Created by Hubi on 16.06.2009
–Änderung vom 07.12.2009
— ->Unterordner können nu auch als Ziel genutzt werden
— ->POP Accounts bzw. lokale Ordner können nun auch angesprochen werden.
— Copyright 2009 hubionmac.com. All rights reserved. ;-)
tell application “Mail”
set theSelection to selection
if theSelection ≠ {} then
try
set ac_name to (name of account of mailbox of (item 1 of theSelection))
set ac_typ to account type of account of mailbox of (item 1 of theSelection)
on error
–wenn eine Nachricht in einem lokalen Postfach ausgewählt wurde kann das nur schief gehen, also:
set ac_name to “”
set ac_typ to pop
end try
set t_mail to {}
if ac_typ = imap then
repeat with i from 1 to (count of every mailbox of account ac_name)
–set t_mail to t_mail & ((i & ” ” & name of mailbox i of account ac_name) as text)
set t_mail to t_mail & ((name of mailbox i of account ac_name & ” (” & i & “)”) as text)
end repeat
else if ac_typ = pop then
repeat with i from 1 to (count of every mailbox)
–set t_mail to t_mail & ((i & ” ” & name of mailbox i of account ac_name) as text)
set t_mail to t_mail & ((name of mailbox i & ” (” & i & “)”) as text)
end repeat
end if
set my_mailboxes to {“•••NEW•••”} & t_mail
set theaction to choose from list my_mailboxes default items {item 1 of my_mailboxes}
if theaction as text ≠ “false” then
if theaction as text = (item 1 of my_mailboxes) as text then
set new_mailboxname to text returned of (display dialog “New Mailbox” default answer “—New Mailbox —“)
if new_mailboxname as text ≠ “false” then
if ac_typ = imap then
tell account ac_name to set desti_box to (make new mailbox with properties {name:new_mailboxname})
else if ac_typ = pop then
make new mailbox with properties {name:new_mailboxname}
set desti_box to new_mailboxname
end if
end if
else
–set desti_box to mailbox ((first word of (theaction as text)) as integer) of account ac_name
if ac_typ = imap then
set desti_box to mailbox ((last word of (theaction as text)) as integer) of account ac_name
else if ac_typ = pop then
set desti_box to mailbox ((last word of (theaction as text)) as integer)
end if
end if
move theSelection to desti_box
end if
else
display dialog “Nix ausgewählt zum verschieben” giving up after 1
end if
end tell
Hey Hubi,
das funktioniert jetzt tadellos!
Besten Dank!
Noch eine Anmerkung:
Wenn du die einfach nur ein if ac_typ = pop und ansonsten else machst (ohne imap bedingung), dann geht das auch mit Exchange Mailboxen unter Snow Leopard :)
Grüße
[…] zeigt einem eine Liste der Zielordner an und man kann recht flott die Bilder weg sortieren. Ist dem Mail-Skript nicht unähnlich…. Code zum markieren einmal anklicken Code im Skript-Editor […]