Autor Thema: Agent zum Ändern vom SendTo Feld?  (Gelesen 6117 mal)

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.918
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Agent zum Ändern vom SendTo Feld?
« am: 18.03.20 - 14:06:57 »
Hallo,

wir haben vor Kurzem unsere Maildomain geändert. Die alte Adresse haben wir als Alias hinzugefügt, damit die Mails and die alte Adresse noch ankommen.
Jedesmal wenn ein Mitarbeiter eine Mail bekommt, die noch an die alte Adresse gesendet wurde und er antwortet  an alle, dann erscheint seine alte Adresse im Kopie-An-Feld.
Die meisten passen nicht auf und erhalten dann ihre Antwort nochmal an sich selber zugestellt.
Die anderen nervt es auch, immer manuell den Empfänger aus der Kopie zu entfernen.

Ich hatte als Lösung gedacht, übergangsweise einen Agenten in die Schablone zu setzen, der nach Eingang einer Mail, prüft, ob an die alte Domain gesendet wurde und dann die alte Domain durch die neue Domain ersetzt.

In meinem Test wird der Agent zwar brav aufgerufen, nur scheint er nichts zu machen. Im Protokoll steht, dass er x Dokumente bearbeitet hat, aber geändert hat sich nichts.

Könnt ihr mal darüberschauen, was ich (mal wieder) falsch gemacht habe?

Nebenbei: wo ist eigentlich im 11er Client die Konsole hin, über die man im Agent mit Print Debug-Ausgaben erzeugen konnte?

Hier das Script:

Code
	Dim session As New NotesSession
	Dim doccol As NotesDocumentCollection
	Dim newemail As NotesDocument
	Dim sendto As String
	Dim newsendto As String
	Dim formula As String

	Set doccol = session.currentdatabase.unprocesseddocuments	
	Set newemail = doccol.getfirstdocument
	While Not (newemail Is Nothing)
		'sendto = CStr(newemail.GetItemValue("SendTo")(0))
		sendto = newemail.SendTo
		newemail.~_ViewIcon = 159
		Print "*** pruefe: " & sendto
		If (InStr(sendto, "@altedomain") > 0) Then
			formula = |@ReplaceSubstring("| & sendto & |" ; "@altedomain" ; "@neuedomain")|
			newsendto = Evaluate(formula)
			Call newemail.Replaceitemvalue("SendTo", newsendto)
			Call newemail.Save(True, False)
			Print "*** gefunden! Ersetze!"
		End If
		Set newemail = doccol.getnextdocument(newemail)
	Wend
	doccol.Updateall
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline JayDee

  • Senior Mitglied
  • ****
  • Beiträge: 408
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #1 am: 18.03.20 - 14:28:35 »
Mit welchen Rechten  / welchem Signer läuft denn der Agent?

Die Konsole ist zu den "Verpassten Alarmen" (Glockensymbol) gewandert
MfG,
Thomas

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.918
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #2 am: 18.03.20 - 14:43:34 »
Der Signer ist aktuell auch der Eigentümer der Datenbank und hat aktuell Managerrechte.

Ich hab Ausgaben von einem anderen Agent unter dem Glockensymbol und dort unter Status gefunden.
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline Tode

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.870
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #3 am: 18.03.20 - 16:16:07 »
Eine Ausgabe eines Agenten "Nach Eingang neuer Mail" findest Du aber nicht am Client, sondern nur in der Server- Console.
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.276
  • Geschlecht: Männlich
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #4 am: 18.03.20 - 16:39:21 »
Code
sendto = newemail.SendTo
diese Zeile ist fehlerhaft und führt zu einem Abbruch des Agenten
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #5 am: 18.03.20 - 17:17:23 »
Du musst dann auch beachten, dass SendTo ein Mehrfachwert sein kann.

sendto und newsendto dürfen kein String sein, sondern Variant, und die Überprüfung, ob die alte Domäne enthalten ist, musst Du je Element vornehmen. Die alte Domäne könnte ja z.B.auch im zweiten Element stehen

EDIT: Ach ja, und copyto und blindcopyto müsstest Du auch noch berücksichtigen.

Also ehrlich, ich würde den Zirkus nicht machen. Wenn die nicht dran denken, den Empfänger rauszunehmen, bekommen die eben selbst eine Mail, ja und? Entf F9 weg is. Und beim dritten Mal werden sie wohl dran denken ...
« Letzte Änderung: 18.03.20 - 19:08:49 von Peter Klett »

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.918
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #6 am: 20.03.20 - 07:13:14 »
Vielen Dank für die Hinweise.
Ich bin schonmal einen Schritt weiter, aber würde jetzt doch nochmal eure Unterstützung gebrauchen können.

Das script bricht jetzt an der Formel ab: Error 221 invalid formuila.
Die angewendete Formel sieht so aus:
Code
(@ReplaceSubstring(""max mustermann" <max.mustermann@altedomain>" ; "@altedomain" ; "@neuedomain"))

Ich bin mir recht sicher, dass das an den im zu dursuchenden String enthaltenen Anführungsstrichen liegt.
Habt ihr eine Idee, wie damit umgehen könnte?
Vorher ersetzen (z.B. durch ein Sternchen) und danach wieder zurück?

Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #7 am: 20.03.20 - 07:26:25 »
Code
(@ReplaceSubstring(""max mustermann" <max.mustermann@altedomain>" ; "@altedomain" ; "@neuedomain"))

Du willst doch bestimmt nicht den zusammengebauten String ersetzen, wenn Du den kennst, kannst Du ihn doch auch gleich richtig setzen. Aber vielleicht verstehe ich es auch nicht wirklich, was Du da machst ;). Du könntest es mit einfachen Anführungszeichen probieren

Code
(@ReplaceSubstring('"max mustermann" <max.mustermann@altedomain>' ; "@altedomain" ; "@neuedomain"))

Was Du aber wohl wirklich brauchst, ist ein

Code
(@ReplaceSubstring(SendTo ; "@altedomain" ; "@neuedomain"))

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.918
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #8 am: 20.03.20 - 09:29:28 »
Naja, ich will, dass bei jeder eingehende Mail geprüft wird, ob die alte Domain bei den Empfängern vorkommt und wenn ja, dann durch die neue Domain ersetzen. Damit die lieben Kollegen, 2 Sekunden Zeit sparen und nicht mehr beim Antworten die Kopie an die alte Domain entfernen müssen.

Das Script sieht aktuell wie folgt aus (die Schleife, mit der ich vorher jeden einzelnen Empfänger geprüft habe, habe ich aktuell auskommentiert)
Das Script wirft aktuell einen Fehler auf der Console: *** CheckRecipientOldDomain: Error occured  0:  in line  0. Agent stopped.

Code
	Dim session As New NotesSession
	Dim doccol As NotesDocumentCollection
	Dim newemail As NotesDocument
	Dim newsendto() As String
	Dim formula As String
	Dim i As Integer

	On Error GoTo HandleError
	
	Set doccol = session.currentdatabase.unprocesseddocuments	' hole alle neuen eMails
	Set newemail = doccol.getfirstdocument						' fange beim ersten Document an
	While Not (newemail Is Nothing)
		Print "*** Test ***"
		Print "*** CheckRecipientOldDomain Subject=" & CStr(newemail.Getitemvalue("Subject")(0))
'		Erase newsendto
'		i = 0
'		ForAll xsendto In newemail.SendTo
'			ReDim Preserve newsendto(i)
'			Print "*** untersuche: " & xsendto
'			If (InStr(xsendto, "@altedomain") > 0) Then			' Wenn Adresse noch alte Domain beinhaltet, dann
'				Print "*** gefunden!! " 
'				formula = |@ReplaceSubstring("| & xsendto & |" ; "@altedomain" ; "@neuedomain")|
'				xsendto = Evaluate(formula)
'				Print "**** geändert auf " & xsendto
'			End If
'			newsendto(i) = xsendto
'			i = i + 1
'		End ForAll
'		Call newemail.Replaceitemvalue("SendTo", newsendto)	' setze korrigerte Empfängerliste
		formula = |@ReplaceSubstring(newemail.SendTo ; "@altedomain" ; "@neuedomain" )|
		Evaluate(formula)
		Call newemail.Save(True, False)
		Set newemail = doccol.getnextdocument(newemail)
	Wend
	doccol.Updateall
	
HandleError:
	Print "*** CheckRecipientOldDomain: Error occured " &  Str(Err) & ": " & Error$ & " in line " & Str(Erl) & ". Agent stopped."
	Exit Sub
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #9 am: 20.03.20 - 09:59:53 »
Mal aus dem Bauch unter Beibehaltung Deiner Scriptteile, ohne Anspruch auf Fehlerfreiheit
Code
	Dim session As New NotesSession
	Dim doccol As NotesDocumentCollection
	Dim newemail As NotesDocument
 	Dim newsendto As Variant

	On Error GoTo HandleError
	
	Set doccol = session.currentdatabase.unprocesseddocuments	' hole alle neuen eMails
	Set newemail = doccol.getfirstdocument						' fange beim ersten Document an
	While Not (newemail Is Nothing)
		Print "*** Test ***"
		Print "*** CheckRecipientOldDomain Subject=" & CStr(newemail.Getitemvalue("Subject")(0))
		If Instr (Join (newemail.SendTo, ":"), "@altedomain") > 0 Then
			newsendto = Evaluate (|@ReplaceSubstring(SendTo ; "@altedomain" ; "@neuedomain")|, newemail)
			Call newemail.Replaceitemvalue("SendTo", newsendto)	' setze korrigerte Empfängerliste
			Call newemail.Save(True, False)
		End If
		Set newemail = doccol.getnextdocument(newemail)
	Wend
	doccol.Updateall
	
HandleError:
	Print "*** CheckRecipientOldDomain: Error occured " &  Str(Err) & ": " & Error$ & " in line " & Str(Erl) & ". Agent stopped."
	Exit Sub

Offline Tode

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.870
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #10 am: 20.03.20 - 10:19:34 »
Und was ist mit CopyTo?
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #11 am: 20.03.20 - 10:24:30 »
Und was ist mit CopyTo?
Das hatte ich schon in #5 erwähnt, kann man dann ja analog erweitern

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.918
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #12 am: 20.03.20 - 13:09:19 »
Ich hab den Code von Dir auch probiert, aber der wirft in der Console leider auch den Fehler:
*** CheckRecipientOldDomain: Error occured  0:  in line  0. Agent stopped.

Ich bin gerade etwas ratlos  :-\
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline maxritti

  • Senior Mitglied
  • ****
  • Beiträge: 490
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #13 am: 20.03.20 - 13:37:09 »
Was ist denn die letzte Ausgabe von dem Agenten?
Nur die Fehlermeldung?

Peter hatte da ja zwei Debug-Prints drin...
Die kannst Du ja erweitern um genau die Zeile zu finden, wo der Fehler passiert.
Oder aber er legt erst gar nicht richtig los mit line 0.

Code
Print "*** Test ***"
Print "*** CheckRecipientOldDomain Subject=" & CStr(newemail.Getitemvalue("Subject")(0))

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.918
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #14 am: 20.03.20 - 14:21:42 »
Die Print-Ausgaben erscheinen:

20.03.2020 12:53:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** Test ***
20.03.2020 12:53:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain Subject=Antwort: AW: Antwort: Migration - Rechteproblem auf Verzeichnis
20.03.2020 12:53:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** Test ***
20.03.2020 12:53:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain Subject=Test 18
20.03.2020 12:53:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain: Error occured  0:  in line  0. Agent stopped.

...

20.03.2020 12:55:57   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** Test ***
20.03.2020 12:55:57   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain Subject=Automatische Antwort: Antwort: Antwort: AW: Antwort: Migration - Rechteproblem auf Verzeichnis
20.03.2020 12:55:57   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain: Error occured  0:  in line  0. Agent stopped.


Ich habe die Print-Ausgaben erweitert und sowohl direkt in der IF- als auch nach dem Speichern eine Ausgabe erzeugt.

Hier die Augabe, bei  Mails, bei denen keine alte Domain gefunden wird.

20.03.2020 14:14:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** Test ***
20.03.2020 14:14:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain Subject=UPS: Refused a self-test; UPS is overloaded.
20.03.2020 14:14:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** Test ***
20.03.2020 14:14:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain Subject=UPS: Started a self-test.
20.03.2020 14:14:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** Test ***
20.03.2020 14:14:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain Subject=UPS: Passed a self-test.
20.03.2020 14:14:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain: Error occured  0:  in line  0. Agent stopped.

Und hier, bei einer Mail an die alte Domain (Subject = Test 19):

20.03.2020 14:16:59   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** Test ***
20.03.2020 14:16:59   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain Subject=Test 19
20.03.2020 14:16:59   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** Test ***
20.03.2020 14:16:59   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain Subject=Einladung zu virtuellen Veranstaltungen: live & on-demand, flexibel, planbar und sicher
20.03.2020 14:16:59   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** Test ***
20.03.2020 14:16:59   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain Subject=IT-Ticket: 11174  => Anforderung erledigt
20.03.2020 14:16:59   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain: Error occured  0:  in line  0. Agent stopped.

aktueller Code:

Code
	While Not (newemail Is Nothing)
		Print "*** Test ***"
		Print "*** CheckRecipientOldDomain Subject=" & CStr(newemail.Getitemvalue("Subject")(0))
		If InStr (Join (newemail.SendTo, ":"), "@altedomain") > 0 Then
			Print "*** alte Domain gefunden --> ersetze"
			newsendto = Evaluate (|@ReplaceSubstring(SendTo ; "@altedomain" ; "@neuedomain")|, newemail)
			Call newemail.Replaceitemvalue("SendTo", newsendto)	' setze korrigerte Empfängerliste
			Call newemail.Save(True, False)
			Print "*** gespeichert"
		End If
		Set newemail = doccol.getnextdocument(newemail)
	Wend

« Letzte Änderung: 20.03.20 - 14:23:28 von schroederk »
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.918
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #15 am: 20.03.20 - 14:28:36 »
Da war ich etwas zu schnell, wenn die alte Domain gefunden wird, gehts doch sauber in den IF-Zweig:

20.03.2020 14:25:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** Test ***
20.03.2020 14:25:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain Subject=Test 20
20.03.2020 14:25:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** alte Domain gefunden --> ersetze
20.03.2020 14:25:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** gespeichert
20.03.2020 14:25:54   AMgr: Agent ('CheckRecipientOldDomain' in 'mail\maildb.nsf') printing: *** CheckRecipientOldDomain: Error occured  0:  in line  0. Agent stopped.

Der Fehler bleibt zwar, aber zum ersten Mal wird auch mal ersetzt.  :o
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #16 am: 20.03.20 - 14:55:52 »
Die Nullen kommen daher, dass es keinen Fehler gibt.

   doccol.Updateall
   Exit Sub

HandleError:
   Print "*** CheckRecipientOldDomain: Error occured " &  Str(Err) & ": " & Error$ & " in line " & Str(Erl) & ". Agent stopped."
   Exit Sub


HandleError: ist ja nur eine Sprungmarke, da springt das Script hin, wenn ein Fehler auftaucht. Ist kein Fehler da, läuft der natürlich am Ende auch da rein, wenn er nicht gestoppt wird. Setz mal das Exit Sub davor

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #17 am: 20.03.20 - 15:00:53 »
Und jetzt dann noch CopyTo und BlindCopyTo ;)

Offline maxritti

  • Senior Mitglied
  • ****
  • Beiträge: 490
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #18 am: 20.03.20 - 15:16:29 »
Die Nullen kommen daher, dass es keinen Fehler gibt.

   doccol.Updateall
   Exit Sub

HandleError:
   Print "*** CheckRecipientOldDomain: Error occured " &  Str(Err) & ": " & Error$ & " in line " & Str(Erl) & ". Agent stopped."
   Exit Sub


HandleError: ist ja nur eine Sprungmarke, da springt das Script hin, wenn ein Fehler auftaucht. Ist kein Fehler da, läuft der natürlich am Ende auch da rein, wenn er nicht gestoppt wird. Setz mal das Exit Sub davor

Na klasse. Da hast Du natürlich recht.
Ist gar nicht aufgefallen in der Hektik.  ;)

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.918
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Agent zum Ändern vom SendTo Feld?
« Antwort #19 am: 23.03.20 - 08:00:22 »
Herzlichen Dank Peter, das hab ich auch komplett übersehen. Dann baue ich jetzt noch das für CopyTo und BlindCopyTo ein und dann nochmal gründlich testen.
Auszurechnen, wie oft die lieben Kollegen jetzt ihre 2 Sekunden sparen müssen, damit sich dieser Aufwand gelohnt hat, wage ich nicht  ;D
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz