AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
05.07.20 - 06:44:54
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  HCL Notes / Domino 11+
| |-+  ND11: Entwicklung (Moderatoren: eknori, fritandr, koehlerbv, Tode)
| | |-+  Agent zum Ändern vom SendTo Feld?
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Agent zum Ändern vom SendTo Feld?  (Gelesen 1106 mal)
schroederk
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1658

Ich liebe dieses Forum!


« 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
Gespeichert

Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?
JayDee
Senior Mitglied
****
Offline Offline

Beiträge: 276


« Antworten #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
Gespeichert

MfG,
Thomas
schroederk
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1658

Ich liebe dieses Forum!


« Antworten #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.
Gespeichert

Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?
Tode
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6445


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #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.
Gespeichert

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

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1187



« Antworten #4 am: 18.03.20 - 16:39:21 »

Code:
sendto = newemail.SendTo
diese Zeile ist fehlerhaft und führt zu einem Abbruch des Agenten
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.9
--
Nur ein toter Bug, ist ein guter Bug!
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2679



« Antworten #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 » Gespeichert
schroederk
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1658

Ich liebe dieses Forum!


« Antworten #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?

Gespeichert

Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2679



« Antworten #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 Wink. 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"))
Gespeichert
schroederk
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1658

Ich liebe dieses Forum!


« Antworten #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
Gespeichert

Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2679



« Antworten #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
Gespeichert
Tode
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6445


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #10 am: 20.03.20 - 10:19:34 »

Und was ist mit CopyTo?
Gespeichert

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

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2679



« Antworten #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
Gespeichert
schroederk
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1658

Ich liebe dieses Forum!


« Antworten #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  Undecided
Gespeichert

Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?
maxritti
Senior Mitglied
****
Offline Offline

Beiträge: 373


« Antworten #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))
Gespeichert
schroederk
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1658

Ich liebe dieses Forum!


« Antworten #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 » Gespeichert

Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?
schroederk
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1658

Ich liebe dieses Forum!


« Antworten #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.  Shocked
Gespeichert

Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2679



« Antworten #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
Gespeichert
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2679



« Antworten #17 am: 20.03.20 - 15:00:53 »

Und jetzt dann noch CopyTo und BlindCopyTo Wink
Gespeichert
maxritti
Senior Mitglied
****
Offline Offline

Beiträge: 373


« Antworten #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.  Wink
Gespeichert
schroederk
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1658

Ich liebe dieses Forum!


« Antworten #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  Grin
Gespeichert

Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: