Willkommen auf der Blog-Seite von hubionmac.com!
Alles rund um AppleScript und was mich sonst noch so interessiert ;-)!

Meine Schwester hat 1 GB Mailspace und muss in regelmäßigen Abständen die Emails aus der Inbox oder dem gesendet-Ordner in einen lokalen Mail-Ordner verschieben, damit das Postfach nicht überläuft.
Dieses Skript hier fragt den Quell-Account und das Quell-Postfach ab, im Anschluss das Zielpostfach und dann wie alt die Mails sein müssen, damit sie verschoben werden sollen.
Neben dem reinen Nutzen ein schönes Beispiel, wie man eine Mailbox via AppleScript-Dialog auswählen kann. ;-) Viel Spaß damit!

## MoveMail oder than... ©hubionmac.com 23.09.2014
## This script moves all Emails older than x days from a source mailbox to a destination mailbox
## source and destination mailbox may be located on differenc accounts or may be local mailboxes

tell application "Mail"
  set theaccounts to name of every account whose enabled is true
  set sourceAccount to (choose from list theaccounts & {"• Local •"} with prompt "Set Source-Mailbox:" & return & "Select Account") as string
  if sourceAccount is "false" then
    error number -128
  end if
  set sourceMailbox to (choose from list my return_mailboxes(sourceAccount) with prompt "Set Source-Mailbox:" & return & "Select Mailbox") as string
  if sourceMailbox is "false" then
    error number -128
  end if
  if sourceAccount is "• Local •" then
    set sourceMailbox to mailbox sourceMailbox
  else
    set sourceMailbox to mailbox sourceMailbox of account sourceAccount
  end if

  set destiAccount to (choose from list theaccounts & {"• Local •"} with prompt "Set destination-Mailbox:" & return & "Select Account" default items {sourceAccount}) as string
  if destiAccount is "false" then
    error number -128
  end if
  set destiMailbox to (choose from list my return_mailboxes(destiAccount) with prompt "Set destination-Mailbox:" & return & "Select Mailbox") as string
  if destiMailbox is "false" then
    error number -128
  end if
  if destiAccount is "• Local •" then
    set sourceMailbox to mailbox destiMailbox
  else
    set destiMailbox to mailbox destiMailbox of account destiAccount
  end if

  repeat until 1 = 0
    try
      set daycount to text returned of (display dialog "Only move mail older than x days" default answer "30") as integer
      if daycount > 0 then
        exit repeat
      end if
    end try
  end repeat
  set deadline to current date
  set deadline to deadline - 60 * 60 * 24 * daycount
  display dialog "Really move " & (count of (every message of sourceMailbox whose date sent < deadline)) & " messages?"
  move (every message of sourceMailbox whose date sent < deadline) to destiMailbox

end tell

on return_mailboxes(accountname)
  tell application "Mail"
    set l to {}
    if accountname is "• Local •" then
      repeat with thebox in every mailbox
        set tmp to name of thebox
        repeat until 1 is 0
          if name of container of thebox is not missing value then
            set tmp to name of container of thebox & "/" & tmp
            set thebox to container of thebox
          else
            exit repeat
          end if
        end repeat
        set l to l & {tmp as rich text}
      end repeat

    else
      repeat with thebox in every mailbox of account accountname
        set tmp to name of thebox
        repeat until 1 is 0
          if name of container of thebox is not missing value then
            set tmp to name of container of thebox & "/" & tmp
            set thebox to container of thebox
          else
            exit repeat
          end if
        end repeat
        set l to l & {tmp as rich text}
      end repeat
    end if
  end tell
  return l
end return_mailboxes

Continue reading...

In bestimmten Fällen möchten Unternehmen und Bildungseinrichtungen ihre Geräte möglicherweise mithilfe von iTunes aktivieren, ohne dass zusätzliche Inhalte synchronisiert oder gesichert werden. In diesem Artikel wird beschrieben, wie der Modus “Nur aktivieren” eingeschaltet wird.

Nun das schreibt Apple hier. Aber wer möchte schon immer diese Modus in iTunes aktiviert haben? Dieses Skript aktiviert den Modus solange es als Anwendung gespeichert (mit der Option “Nach Run-Handler anzeigen”)wurde, wenn man das Skript startet. Und deaktiviert die Einstellung sobald es wieder geschlossen wird.
iTunes wird von dem Skript automatisch neu gestartet, so dass die geänderte Einstellung direkt wieder aktiv wird.

### 11.09.2014 © hubionmac.com
### Applescript um iTunes in den StoreActivation Mode zu versetzten
### Damit wird jedes angeschlossene iOS Device direkt über iTunes aktiviert und wieder ausgeworfen
### Damit man iTunes normal weiter nutzen kann, ist dieses Setting nur solange aktiv, wie dieses Skript läuft (Als Anwendung gespeichert)

property setprefs : false

on run
  set theaction to button returned of (display alert "Activate StoreActivation Setting in iTunes? iTunes will restart?" buttons {"Activate", "nope quit"} default button {"Activate"})
  if theaction is "Activate" then
    tell application "System Events"
      repeat with i from 1 to 10
        if name of every process contains "iTunes" then
          tell application "iTunes" to quit
        else
          do shell script "defaults write com.apple.iTunes StoreActivationMode -integer 1"
          set setprefs to true
          exit repeat
        end if
        delay 1
      end repeat
      if setprefs is false then
        display alert "Error on resetting preferences... (could not quit iTunes in time) Restart and quit app to fix this"
      else
        tell application "iTunes" to activate
        do shell script "afplay /System/Library/Sounds/Pop.aiff "
      end if

    end tell
  else
    tell me to quit
  end if
end run

##Routine die beim Beendetn des Skript-Programmes durchlaufen wird
on quit
  ##es wird versucht die gesetzte Voreinstellung wieder zur löschen… kommt es zu einem Fehler, wird dieser angezeigt und das Programm beendet sich trotzdem...
  tell application "System Events"
    repeat with i from 1 to 10
      if name of every process contains "iTunes" then
        tell application "iTunes" to quit
      else
        do shell script "defaults write com.apple.iTunes StoreActivationMode -integer 0"
        set setprefs to false
        exit repeat
      end if
      delay 1
    end repeat
  end tell
  if setprefs is true then
    display alert "Error on resetting preferences... (could not quit iTunes in time) Restart and quit app to fix this"
  else
    tell application "iTunes" to activate
    do shell script "afplay /System/Library/Sounds/Pop.aiff "
  end if

  continue quit

end quit

Continue reading...