1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Antworten mit Mail

Dieses Thema im Forum "OS X-Developer" wurde erstellt von Atelis, 02.11.07.

  1. Atelis

    Atelis Akerö

    Dabei seit:
    01.03.07
    Beiträge:
    1.831
    ich bin am verzweifeln. das script "sendMail" funktioniert alleine wunderbar, allerdings nicht mehr im zusammenhang mit der regel, die oben überprüft wird... das script bricht dann bei
    "set newMessage to make new outgoing message with properties ... " (in sendMail)
    ab.

    sieht jemand den fehler?

    Code:
    using terms from application "Mail"
    	on perform mail action with messages theMessages for rule theRule
    		tell application "Mail"
    			
    			set numberOfMessages to count theMessages
    			
    			repeat with thisMessage in theMessages
    				
    				set theSubject to subject of thisMessage
    				set theSender to sender of thisMessage
    				
    				try
    					[hier werden ein paar anhänge verschoben und kopiert]
    					
    					my sendMail(theSender, "erfolgreich", nameOfAttachment)
    					
    				on error
    					
    					my sendMail(theSender, "fehlgeschlagen", nameOfAttachment)
    					
    				end try
    				
    			end repeat
    			
    		end tell
    		
    	end perform mail action with messages
    	
    end using terms from
    
    
    
    on sendMail(theSender, theStatus, theAttachment)
    	tell application "Mail"
    		set newMessage to make new outgoing message with properties {subject:theStatus, content:"Datei: " & theAttachment}
    		tell newMessage
    			set visible to false
    			make new to recipient at end of to recipients with properties {address:theSender}
    			send
    		end tell
    		
    	end tell
    	
    end sendMail
     
  2. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    wie wird denn nameOfAttachment übergeben?
    der teil, den du weggelassen hast.
    mit ...
    Code:
    file name of attachment
    ?
    was für ein fehler kommt denn?
     
  3. Atelis

    Atelis Akerö

    Dabei seit:
    01.03.07
    Beiträge:
    1.831
    mit "set nameOfAttachment to the name of the first mail attachment of thisMessage"

    fehler kommt keiner, weil ich es als regel in mail einbinde. es wird einfach keine mail verschickt - die dateiverschiebungen werden allerdings korrekt und vollständig gemacht...
     
  4. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    dann lass das doch mal per display dialog ausgeben
    oder lass den error in ein file schreiben
     
  5. Atelis

    Atelis Akerö

    Dabei seit:
    01.03.07
    Beiträge:
    1.831
    mach ich das nicht mit
    Code:
    try
      ...
    on error errMsg number errNr
      display dialog "ERROR! " & errMsg & "(" & errNr & ")" buttons {OK} default button 1
    end try
    ?

    bringt nämlich genauso keine ausgabe...
     
  6. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    tut mir leid. ich komm auch nicht dahinter.
    der wurm liegt im handler, doch selbst wenn man den handler auseinanderdröselt, und direkt (statt handler-aufruf) einsetzt, kommt ein Fehler in der AppleEvent-Routine -10000.
     
  7. Atelis

    Atelis Akerö

    Dabei seit:
    01.03.07
    Beiträge:
    1.831
    mmh, hab das script mit den apple-vorlagen und scripts aus dem internet zusammengebastelt. hab da noch keine unterschiede entdeckt, aber es muss ja einen geben...
    wie sieht dein script nach dem "auseinanderdröseln" aus?
     
  8. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Kann es sein, daß Du Deine Mail einfach nur weiterleiten willst? Dafür gibt es doch "forward".
     
  9. Atelis

    Atelis Akerö

    Dabei seit:
    01.03.07
    Beiträge:
    1.831
    nein, wie das script eigentlich schon deutlich macht, soll das script "antworten", ob das verschieben/kopieren erfolgreich war und dementspechend ein "erfolgreich" oder ein "fehlgeschlagen" zurückschicken...
     
  10. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Naja... So ganz deutlich ist es nicht, vorallem, weil Du etwas als Attachment übergibst, das nicht existiert. Vielleicht solltest Du mal das vollständige Script veröffentlichen und zu jeder Zeile hinzuschreiben, was Du meinst, das sie tut.
     
  11. Atelis

    Atelis Akerö

    Dabei seit:
    01.03.07
    Beiträge:
    1.831
    so, das script soll eine datei bekommen und er soll mir eine antwort schicken, ob er den Dateinamen lesen konnte - das müsste doch auch schon funktionieren?

    Code:
    using terms from application "Mail"
    	on perform mail action with messages theMessages for rule theRule
    		tell application "Mail"
    			
    			set numberOfMessages to count theMessages
    			repeat with thisMessage in theMessages
    				
    				set theSender to sender of thisMessage
    				
    				try
    					set nameOfAttachment to the name of the first mail attachment of thisMessage
    					my sendMail(theSender, "Dateiname erfolgreich ausgelesen", nameOfAttachment)
    				on error
    					my sendMail(theSender, "Fehlgeschlagen", nameOfAttachment)
    				end try
    				
    			end repeat
    			
    		end tell
    	end perform mail action with messages
    end using terms from
    
    
    
    on sendMail(theSender, theStatus, theAttachment)
    	tell application "Mail"
    		set newMessage to make new outgoing message with properties {subject:theStatus, content:"Dateiname: " & theAttachment}
    		tell newMessage
    			set visible to false
    			make new to recipient at end of to recipients with properties {address:theSender}
    			send
    		end tell
    		
    	end tell
    	
    end sendMail
     
  12. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    müßte eigentlich klappen. Sieht dem hier sehr ähnlich...
     
  13. Atelis

    Atelis Akerö

    Dabei seit:
    01.03.07
    Beiträge:
    1.831
    ja, klappt aber nicht - das script wird definitiv ausgeführt, aber es wird keine email verschickt...
    wie könnte ich am besten eine fehlerausgabe machen?
     
  14. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Ich würde eine Kontrollausgabe in eine temporäre Datei schreiben lassen. Ungefähr so:
    Code:
    do shell script "(date ; echo " & (quoted form of (theSender & ":" & theStatus & ":" & theAttachment)) & ") >> /tmp/maillog.txt"
    Das in Deinen Handler eingebaut und dann in der Shell mal nachgesehen, was da so auftaucht.
     
  15. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Also der Fehler lautet:
    "Fehler in der AppleEvent-Routine -10000"
    und der passiert in dieser Zeile:
    Code:
    set newMessage to make new outgoing message with properties {subject:theStatus, content:"Dateiname: " & theAttachment}
    (wobei ich theAttachement fix als String definiert hatte). Entweder kam die Fehlermeldung, oder Mail hat komplett "Tschüss" gesagt.
    Vielleicht ist es "unklug", während des rule-checks gleichzeitig eine Mail generieren zu wollen?
    Keine Ahnung.
     
  16. Atelis

    Atelis Akerö

    Dabei seit:
    01.03.07
    Beiträge:
    1.831
    es ist ja auch nur ein string, der übergeben wird...


    @skeeve: es wird nichts geschrieben - stattdessen habe ich das hier in der system.log gefunden:
    Code:
    ... Mail[2003]: *** Assertion failure in -[MailDocumentEditor load], /SourceCache/Mail/Mail-912.1/Compose.subproj/DocumentEditor.m:322
    ... Mail[2003]: An exception was thrown during execution of an NSScriptCommand...
    ... Mail[2003]: load must be called on the main thread
    mmh, im internet habe ich ähnliche scripte gefunden (im zusammenhang eines automatischen torrent-download-starters), die da angeblich funktionieren (zu zeiten von tiger), bei mir aber ebenfalls nicht klappen. das script...
     
    #16 Atelis, 07.11.07
    Zuletzt bearbeitet: 07.11.07
  17. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    wenn nichts geschrieben wird, wird der Handler auch nicht aufgerufen. Du hast aber schon in der Datei /tmp/maillog.txt nachgesehen, oder?
     
  18. Atelis

    Atelis Akerö

    Dabei seit:
    01.03.07
    Beiträge:
    1.831
    die existiert bei mir überhaupt nicht...
     
  19. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Dann wird (s.o.) auch Dein Handler nicht aufgerufen.
     
  20. Atelis

    Atelis Akerö

    Dabei seit:
    01.03.07
    Beiträge:
    1.831
    so, hab's jetzt:

    folgendes script:
    Code:
    using terms from application "Mail"
    	on perform mail action with messages theMessages for rule theRule
    		tell application "Mail"
    			
    			set numberOfMessages to count theMessages
    			repeat with thisMessage in theMessages
    				
    				set theSender to sender of thisMessage
    				
    				try
    					set nameOfAttachment to the name of the first mail attachment of thisMessage
    					my sendMail(theSender, "Dateiname erfolgreich ausgelesen", nameOfAttachment)
    				on error
    					do shell script "(date ; echo Jetzt geht es schief...) >> maillog.txt"
    				end try
    				
    			end repeat
    			
    		end tell
    	end perform mail action with messages
    end using terms from
    
    
    
    on sendMail(theSender, theStatus, theAttachment)
    	do shell script "(date ; echo " & (quoted form of (theSender & ":" & theStatus & ":" & theAttachment)) & ") >> maillog.txt"
    	
    	tell application "Mail"
    		set newMessage to make new outgoing message with properties {subject:theStatus, content:"Dateiname: " & theAttachment}
    	end tell
    	
    end sendMail
    ergebnis:
    Code:
    Wed Nov  7 22:48:39 CET 2007 Name <meine@email.adresse>:Dateiname erfolgreich ausgelesen:Test.test
    Wed Nov  7 22:48:39 CET 2007 Jetzt geht es schief...
    

    fazit: in der zeile

    set newMessage to make new outgoing message with properties {subject:theStatus, content:"Dateiname: " & theAttachment}​

    ist etwas falsch, sodass das script an dieser stelle abgebrochen wird... weiß jemand was?
     

Diese Seite empfehlen