Mailregel skripten; Apples Beispiel stürzt ab

maceis

Aktives Mitglied
Thread Starter
Dabei seit
24.09.2003
Beiträge
16.880
Reaktionspunkte
626
Hallo zusammen,

ich habe zurzeit Probleme, ein Skript für eine Apple Mail Regel zu skripten.
Um da weiterzukommen, habe ich mir das Beispielskript "/Library/Scripts/Mail Scripts/Rule Actions" genommen, weil ich dachte, darauf könnte ich aufbauen. Denkste!
Ich setz' hier mal eine leicht gekürzte Version rein:
Code:
(*
Skript basiert auf dem von Apple bereitgestellten Skript
Sample Rule Action Script.scpt
*)
using terms from application "Mail"
  on perform mail action with messages theMessages for rule theRule
      tell application "Mail"
         repeat with eachMessage in theMessages
            set theSubject to subject of eachMessage
            try
              -- If this is not being executed as a rule action,
              -- getting the name of theRule variable will fail.
               set theRuleName to name of theRule
               set theText to "The rule named '" & theRuleName & "' matched this message:"
               set theText to theText & return & return & "Subject: " & theSubject
               display dialog theText
              set theText to ""
            end try
         end repeat
         if theText is not equal to "" then
            display dialog theText buttons {"OK"} default button 1
         end if
      end tell
   end perform mail action with messages
end using terms from

Das Skript sollte nach meinem Verständnis (angehängt an eine Mailregel) alle Mails, die von dieser Regel erfasst werden, der Reihe nach verarbeiten. Das Skript sollte für jede Mail eine Dialogbox mit einem Text sowie dem Subjekt der der jeweiligen Mail anzeigen.

Das klappt genau einmal - dann hängt das Skript für ein paar Sekunden und dann stürzt Mail jedes Mal ab.

Ist das bei Euch auch so?
Hat jemand ein funktionsfähiges Skript, dass als Mailregel wirklich alle Mails der Reihe nach abarbeitet ohne das Mail abstürzt.

Danke im Voraus und Gruß
maceis

Edit.
Bei einem Versuch habe ich sogar so eine komische Dialogbox erhalten.
 
Zuletzt bearbeitet:
Hallo maceis,

seit einiger Zeit dürfen AppleScript-Mail-Regeln keine Benutzerinteraktion mehr beinhalten, ansonsten stürzen sie gnadenlos ab. Das ist ein bekannter und recht nerviger Bug.

Im Apple-eigenen Code-Beispiel stört der «display dialog»-Befehl den Frieden. Entfernst Du ihn, wird das Skript einwandfrei funktionieren.
 
Danke für den Tipp. Werde ich mal testen.

Ich hab zwischenzeitlich eine andere Lösung versucht und dabei mehr aus Spass die "display dialog" Anweisungen durch "say ..." ersetzt.

Code:
on perform_mail_action(foo)
  set selectedMessages to |SelectedMessages| of foo
  repeat with selectedMessages in selectedMessages
    -- mach was
  end repeat
end perform_mail_action

Mich wundert nur zweierlei:
1. Dass ich trotz intensiver Suche keinen Hinweis auf diese Abstürze gefunden habe. Jedenfalls ist es gut, das zu wissen.
2. Dass Apples Codebeispiele buggy sind. Wie soll man als Anfänger klarkommen, wenn schon die Lernhilfen nicht laufen :confused:

Danke auch für die Links
Gruß
maceis
 
Zurück
Oben Unten