Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Mailboxen löschen - aber wie
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 12.12.2006 - 15:59    Titel: Antworten mit Zitat

Daisy hat Folgendes geschrieben:
... Mailboxordner bezogen der imho immer am gleichen Platz liegt und den man nach meiner Ansicht - ohne Mail in seiner Funktion nachhaltig zu beeinträchtigen - auch nicht einfach im Finder verschieben kann.

Jein. Lies mal die Manpage zu "defaults". Damit kannst Du auch die defaults ändern, die nicht über die preferences erreichbar sind. Wenn man damit nun den Mail Speicherort ändert, fällt jedes Script auf die Nase, das von deiner Annahme ausgegangen ist.

Ob nun Mail selbst auch auf die Nase fällt, möchte ich nicht ausprobieren Wink

Was mich einfach stört ist, daß es keinen offiziellen, zuverlässigen Weg gibt. Schließlich soll das Script auch ohne Anpassung auf der nächsten OS X Version laufen können.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Daisy
•-->
•-->


Anmeldedatum: 26.04.2002
Beiträge: 79

BeitragVerfasst am: 12.12.2006 - 17:49    Titel: Antworten mit Zitat

Asche auf mein Haupt - du hast recht - es geht tatsächlich. Ich hab's ausprobiert. Mein Problem war nicht die mangelnde Beherrschung des 'defaults'-Tools, sondern ich hatte den entsprechenden Eintrag in den User-Defaults nicht richtig gelesen/interpretiert.

Nach den aus meinem Test gewonnenen neuen Erkenntnissen wäre dann doch mein erstes Shellscript zur Ermittlung des Pfades eher das (derzeit) richtige, da es an der richtigen Stelle liest. Es ist nämlich auch machbar, dass der Outbox-Folder an einer anderen Stelle liegt, als die übrigen Mailboxen.

Hier also nochmal ein Versuch einer optimierten Fassung, die möglichst viele Eventualitäten ausschließt - ich denke, daran, dass der Key 'MailAccounts' und der AccountType der Mailboxen 'LocalAccount' heisst wird Apple wohl nicht so schnell was ändern ...

Code:
on getMailboxPath()
   set thePath to ""
   set {od, text item delimiters} to {text item delimiters, "{"}
   set theAccounts to text items of (do shell script "defaults read com.apple.mail MailAccounts")
   set text item delimiters to od

   repeat with acct in theAccounts
      if acct contains "AccountType = LocalAccount" then
         repeat with keyVal in paragraphs of acct
            if keyVal contains "AccountPath = " then
               set {od, text item delimiters} to {text item delimiters, "\""}
               set thePath to text item 2 of keyVal
               set text item delimiters to od
               exit repeat
            end if
         end repeat
      end if
   end repeat
   return thePath
end getMailboxPath
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 13.12.2006 - 01:59    Titel: Antworten mit Zitat

Daisy hat Folgendes geschrieben:
Asche auf mein Haupt - du hast recht - es geht tatsächlich. Ich hab's ausprobiert.

Da wir uns beim defaults read ohnehin schon in einem do shell script befinden, ziehe ich diese Variante dem AppleScript text item delimiter Gehuddel Wink vor:
do shell script "defaults read -app Mail MailAccounts | perl -e '
   while (<>) {
      if ( $h=/^\\s+\\{\\s*$/ .. /^\\s*\\},?\\s*$/ ) {
         if ($h eq 0+$h) {
            next unless ($k, $v)= /^\\s*(\\w+)\\s*=\\s*(\\S+);\\s*$/;
            if ($k eq q`AccountPath`) {
               $ap= $v;
            }
            elsif ($k eq q`AccountType`) {
               $at= $v;
            }
         }
         else {
            next unless $at eq q`LocalAccount`;
            $ap=~ s/^\"(.*)\"/$1/;
            print $ap;
         }
      }
   }
'"

_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter