• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Antworten mit Mail

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
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
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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?
 

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
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...
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
24.02.07
Beiträge
253
dann lass das doch mal per display dialog ausgeben
oder lass den error in ein file schreiben
 

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
dann lass das doch mal per display dialog ausgeben
oder lass den error in ein file schreiben

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...
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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.
 

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
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.

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?
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Kann es sein, daß Du Deine Mail einfach nur weiterleiten willst? Dafür gibt es doch "forward".
 

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
Kann es sein, daß Du Deine Mail einfach nur weiterleiten willst? Dafür gibt es doch "forward".

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...
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
nein, wie das script eigentlich schon deutlich macht,
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.
 

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
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
 

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
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?
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
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.
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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.
 

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
(wobei ich theAttachement fix als String definiert hatte).

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...
 
Zuletzt bearbeitet:

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
wenn nichts geschrieben wird, wird der Handler auch nicht aufgerufen. Du hast aber schon in der Datei /tmp/maillog.txt nachgesehen, oder?
 

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
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 <[email protected]>: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?