Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: PeterD2 am 16.06.04 - 15:22:54
-
Ok, Spoofing ist schlecht, böse, gemein und hinterhältig!
Trotzdem sollen unsere Assistenzen in der Lage sein auf Grundlage markierter Notes-Dokumente Angebotsmails per Skript zu generieren, bei denen als Absender immer die Adresse des im markierten Notes-Dokument genannten Kundenbetreuers erscheint. Wie das grundsätzlich geht, nämlich durch Speichern eines neuen Dokuments direkt in der mail.box und setzen der entsprechenden Dokumentenfelder, ist mir klar. Allerdings enthalten unsere Mails auch das Angebotsschreiben als PDF im Anhang, und somit würden die Benutzer des Agenten höhere Benutzerrechte als "Leser" in der mail.box benötigen, damit das funktioniert. Das ist natürlich ein Sicherheitsloch das ich unserer Company nicht antun möchte. Gibt es nicht doch irgend eine Möglichkeit die Mail in der aktuellen Applikationsdatenbank zu erstellen, dabei den Absender zu ändern, und diese dann per "call maildoc.send(false)" zu versenden?
So Sachen wie:
Maildoc.SendFrom= "Absender@unsere.org"
Maildoc.inetfrom= "Absender@unsere.org"
Maildoc.From= "Absender@unsere.org"
Maildoc.replyto="Absender@unsere.org"
Maildoc.Principal = ="Absender@unsere.org"
habe ich in Zusammenhang mit dem Maildoc.Send(false) Befehl längst erfolglos probiert.
Danke im Voraus, ich weiß das Thema ist nicht ganz unproblematisch.
Ciao
Peter
-
Hy,
also wenn ich den Agent am Server laufen lasse dann funktioniert es,
es funktioniert nur nicht wennd er Agent direkt vom User ausgeführt wird. ;)
Cu
Martin
-
also wenn ich den Agent am Server laufen lasse dann funktioniert es,
Ja logisch, der Server hat ja auch höhere Zugriffsberechtigungen auf die mail.box als der normale User, der mit "Einlieferer" Rechten klarkommen muß. Gebe ich den Usern z.B. Autor-Berechtigungen klappt´s auch, nur können die dann jede fremde Mail in der mail.box schön mitlesen. Ist ja nicht im Sinne des Erfinders.
Ciao
Peter
-
Na, wenn du es eh schon so genau weisst,
was fragst du denn noch >:(
-
Ich frage, weil ich nach einer Lösung suche mit der ich die Mails eben entweder nicht direkt in der mail.box erstellen muß, sondern in meiner Applikations-DB (da haben die o.g. Assistenzen Editor Zugriff), oder bei der der User nur geringe Zugriffsrechte benötigt um den Absender zu faken.
Nichts für Ungut, trotzdem "Danke" für Deine Antwort.
Aber vielleicht reden wir ja auch aneinander vorbei. Von was für einem Agenten redest Du denn?
Ciao
Peter
-
versuche mal
Function SpoofMessage( Byval sendas As String, Byval sendto As String, subject As String, message As String )
Dim session As New NotesSession
Dim mailbox As New NotesDatabase("","")
' get handle to mail.box on the users current mail server
Set current = session.CurrentDatabase
Call mailbox.Open( current.server, "mail.box" )
' Create a new document in the severs mail box
Set maildoc = mailbox.CreateDocument
maildoc.Form = "Memo"
maildoc.From = sendas
maildoc.SendFrom = sendas
maildoc.SendTo = sendto
maildoc.Recipients = sendto
maildoc.Subject = subject
Set rtitem = maildoc.CreateRichTextItem( "Body" )
Call rtitem.AppendText( message )
maildoc.PostedDate = Now()
maildoc.ComposedDate = Now()
maildoc.DeliveredDate = Now()
maildoc.Principal = sendas
maildoc.EncryptOnSend = False
Call maildoc.Save( True, False )
End Function
-
Danke Ulrich, aber das funktioniert leider nur solange man keine Attachments an die Mails hängt. Bei mir müssen da dummerweise PDF´s dran. Genau deshalb suche ich eine Möglichkeit (falls es sie überhaupt gibt) die Mails außerhalb der mail.box zu erstellen.
Ciao
Peter
-
Vielleicht antworte ich jetzt etwas zu voreilig, aber wäre nicht der Weg
- Document in Deiner DB erstellen und dann ein
- CopyToDatabase (-> MAIL.BOX)
eine Lösung Deines Problems ? Dafür reichen doch die Rechte als Einlieferer.
Bernhard
PS: Mit Infos zum Spoofing sollten wir aber hier im Forum vorsichtig sein ;)
-
Du hast völlig Recht! Manchmal sieht man eben den Wald vor lauter Bäumen nicht. :-\
Danke vielmals, das scheint ganz gut zu funktionieren.
Ciao
Peter
-
Hallo Forumsteilnehmer!
Ich habe in einer meiner Datenbanken die Funktion von eknori SpoofMessage im Einsatz.
Funktioniert soweit auch! Und jetzt kommt das Aber:
wenn ich Kopien und Blindkopien auf diese Weise verschicke, dann kommen die nicht an.
habe die Funktion so erweitert:
ich übergebe der Funktion die Adressen für copy und blindcopy
und mach dann:
maildoc.CopyTo = copy
maildoc.BlindCopyTo = blindcopy
Zu meiner(n) Frage(n):
1. gibt es sonst irgendwelche Felder, die noch gesetzt werden müssen?
2. Sind das überhaupt die richtigen?
3. Gibt es eine Erklärung dafür, dass es nicht funktioniert.
Ich hoffe, jemand kann mir das mal erklären!
Vielen Dank
Gruß,
Marcel
-
Wer auf diesem Niveau mit Agenten arbeitet, sollte sich unbedingt die Publikationen bei LDD (früher Notes.net) von Jurlie Kasadevich zu Gemüte führen und dort insbesondere die Artikel, die als sogenannte "Agent-FAQ" publiziert wurden. Dort wird auch beschrieben, wie die Absenderadressierung bei von Agenten erstellten Mails funktioniert.
-
Hi Semeaphoros!
Vielen Dank für dein Posting! Hast mir häufig schon indirekt geholfen, dafür auch noch Danke. ;)
Die einzigste Publikation die ich gefunden habe von Julie Kadashevich ist "Controlling the agents in your system".
Ich habe sie gschwind überflogen aber nichts richtiges gefunden. Ist keine Entschuldigung, aber Zeitdruck und so, du weißt schon!
Jedenfalls wollte ich dich bitten, wenn du Zeit hast, mir mal kurz den richtigen Weg zu weisen.
Macht es eigentlich nen Unterschied ob das Spoofing in nem Agenten oder in ner Aktion geschieht?
Ich denke mal nicht!
Die anderen Teilnehmer sind natürlich weiter gefragt! ;-)
-
Nein, kein Unterschied
-
In dem von Dir genannten Interview ist der Link auf die Notes-Net Artikelserie drin.
Startpunkt ist sicher der Artikel "Troubleshooting Agents".
Im Moment über diesen Link erreichbar:
http://www-128.ibm.com/developerworks/lotus/library/ls-Troubleshooting_agents/index.html
-
Hi Jens!
Ich versteh den Zusammenhang nicht. Ich versuche aus einer externen datenbank ein Dokument in die mail.box zu kopieren. Was ja auch lief, bis ich die Felder copyto und blindcopyto hinzugefügt habe. Empfänger die, in diesen beiden Feldern eingetragen sind erhalten keine Mail. Empfänger in SendTo schon.
Ich versteh den Unterschied und den Zusammenhang nicht .
ich habe es schon so versucht, aber immer mit dem selben Ergebnis.
Call maildoc.AppendItemValue( "Recipients", docMail.SendTo)
Call maildoc.AppendItemValue( "Recipients", docMail.CopyTo )
Call maildoc.AppendItemValue( "Recipients", docMail.BlindCopyTo)
Call maildoc.AppendItemValue( "CopyTo", docMail.CopyTo)
Call maildoc.AppendItemValue( "BlindCopyTo", docMail.BlindCopyTo)
Was für ein Freitag!!!
-
Jetzt müsste man noch wissen, wie Deine Variablen "Recipients" und (keine Ahnung, müsste ja 'ne andere für BCC sein) aufgebaut sind. Ich vermute eher, dass dort der Hase im Pfeffer liegt.
Sagst Du mal an ?
Bernhard
-
Also vielen Dank, für eure Hilfe!
Habe jetzt die Lösung des Problems.
Ich fasse es hier nochmal zusammen (so wie ich es verstanden habe!):
Das Feld Recipients wird von der Arbeitsplatzweiterleitung erstellt. Dieses wird von der Router Task verwendet.
Der Inhalt des Feldes sollte ne Textliste sein. Also ungefähr so:
Set itRecipients = maildoc.ReplaceItemValue("Recipients", docMail.SendTo)
Forall cc In docMail.CopyTo
Call itRecipients.AppendToTextList(cc)
End Forall
Forall bcc In docMail.BlindCopyTo
Call itRecipients.AppendToTextList(bcc)
End Forall
Dann die Mail noch in der Mail.Box speichern.
Da ich mich nicht mit fremden Federn schmücken möchte verweise ich auf ein paar Beiträge von Glombi
http://www.atnotes.de/index.php?topic=16945.0
Für Ergänzungen und Erweiterungen bin ich offen!
Gruß,
Marcel