Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: coma am 17.02.09 - 14:06:09

Titel: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 17.02.09 - 14:06:09
Hallo zusammen,

ich habe eine einfache Datenbank, mit der Reparaturen abgehandelt werden. Nach Eingang des Gerätes bei uns befindet sich das Gerät in einer Warteschlange bis es repariert werden kann. Das kann im ungünstigen Fall auch mal 2-3 Wochen dauern. Damit die Kunden dann nicht jeden dritten Tag nachfragen, habe ich einen Agenten in der Datenbank ativiert, der wenn der Status "in Warteschlange" ist, einmal wöchentlich ein Mail an den Kunden versendet um mitzuteilen, dass sich das Gerät noch in der Warteschlange befindet aber ansonsten alles in bester Ordnung ist. Das funktioniert auch soweit bis auf zwei Problem:

1) Die Absendeadresse der Nachricht ist der Servername, das geht draussen in der Welt natürlich niemanden etwas an. Wie kann ich das denn ändern? Hätte gerne dort etwas wie info@blablabla.de

2) Wie kann man denn festlegen zu welchem Zeitpunkt ein Agent läuft, ich finde nur die Einstellung in welcher Frequenz ein Agent läuft.

Vielen Dank für die zahlreiche Unterstützung  ::)
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 17.02.09 - 14:09:40
zu 1) Feld "From" setzten mit der e-Mailadresse die du haben möchtest
zu 2) im gleichen Dialogfenster ;-)


Gruß, Felix
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: m3 am 17.02.09 - 14:09:59
ad 1) Forumssuche sowie die Lotus Notes/Domino Agent FAQ (http://www.lotus.com/ldd/46dom.nsf/869c7412fe5d56b7852569fa007826e3/574c99ccb345839185256976004e811e?OpenDocument) von Julie Kadashevich

ad 2) Notes Client-Hilfe, Kapitel "Triggering an agent on a schedule" Stiwchwort "daily"
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 17.02.09 - 15:41:33
Hallo Felix,

danke für die schnelle Antwort, aber ich komme nicht ganz klar damit. Ich muss dazu sagen, dass ich "@MailSend" zum Versenden der Nachricht nutze.

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 17.02.09 - 16:14:19
Mit @MailSend inkl. Parameter wirst du da kein Glück haben. Dort kann man keinen Absender eintragen.
Verwende doch lieber Lotus Script...
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 17.02.09 - 17:14:34
Zitat
Mit @MailSend inkl. Parameter wirst du da kein Glück haben. Dort kann man keinen Absender eintragen.
Verwende doch lieber Lotus Script...

sorry, aber das übersteigt meine Fähigkeiten... oder gibt es da ein Schnipselchen zum Ausschneiden und anpassen?

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 17.02.09 - 17:23:00
Angepasster Schnipsel aus der Hilfe:

Code
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
doc.Form = "Memo"
doc.From = "Mein@EMail.de"
doc.SendTo = "Empfaenger@EMail.de"
doc.Subject = "Here's the document you wanted"
Call doc.Send( False )

edit:
Ein RichTextItem mit dem Namen "Body" sollte noch drin sein, um den Ihnalt anzeigen zu können
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 17.02.09 - 17:30:08
Nope. NotesDocument.Send macht Dir Dein doc.From wieder kaputt und setzt den Signer des Agents als Absender ein.

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 17.02.09 - 17:51:26
Zitat
Nope. NotesDocument.Send macht Dir Dein doc.From wieder kaputt und setzt den Signer des Agents als Absender ein.

Bernhard

Und jetzt? Muss ich aufgeben?  ???
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 17.02.09 - 17:55:10
Ohne Kenntnis von LotusScript? Ja.

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 17.02.09 - 18:06:02
Hallo Bernhard,

na so leicht gebe ich nicht auf. Kann doch nicht sooooo, kompliziert sein.

Gib doch mal n Tipp...  :o

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 17.02.09 - 18:24:41
Da Du hierfür ja den ganzen Agent mit LotusScript schreiben müsstest und das Senden mit "falscher Adresse" erst der krönende Abschluss ist: Fang doch erstmal klein an - und stelle uns dann konkrete Fragen.
Dir wird dabei dann auch garantiert geholfen.

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 17.02.09 - 18:38:42
Hallo Bernhard,

ich habe nicht vor die Script Sparache zu lernen, ich wollte nur ein Problem lösen. Wenn das per Script zu aufwändig ist, fällt das eben flach. Muss doch noch eine andere Möglichkeit geben...

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 17.02.09 - 18:48:17
Hallo Ralf,

klar gibt es noch andere Möglichkeiten: Java, C und die API, Visual Basic via COM von aussen - oder Ihr lasst es Euch eben schreiben. Hauptsache, das Problem ist gelöst.

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 17.02.09 - 20:26:46
@Bernhard: Ich habs jetzt nicht ausprobiert. Aber, sobald das "From"-Feld gesetzt wurde, dann würde im Notes doch diese Adresse angezeigt. Und unten drunter der "gesendet von: " Hinweis. Oder steh ich da jetzt vollkommend auf dem Schlauch?
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: TRO am 17.02.09 - 20:31:43
Nein, das "From"-Item wird bei NotesDoc.Send mit dem AgentSigner (in diesem Fall) überschrieben ... das ist u.a. ein Sicherheitsfeature (verwand mit der Unmöglichkeit die $UpdatedBy- und $Revisions-Items zu überschreiben).

Womit Du in solchen Fällen arbeiten kannst, sind Principal, INetFrom, ReplyTo, ...

Thomas
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 17.02.09 - 20:40:10
Und wieder was dazu gelernt. Danke Thomas.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 17.02.09 - 20:52:47
Womit Du in solchen Fällen arbeiten kannst, sind Principal, INetFrom, ReplyTo, ...

Oder richtiges "Faking" (Erstellen der Mail in der MAIL.BOX) - dann gibt es wirklich nur einen (gewünschten) From  ;)

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: tfrenz am 18.02.09 - 08:40:34
Hallo, ich mache das mit dem Feld ReplyTo, dann funktioniert wenigstens das antworten auf diese Mail.

   MailDoc.ReplyTo = "name@domäne.de"

Thomas
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 18.02.09 - 08:55:33
Zitat
Hallo, ich mache das mit dem Feld ReplyTo, dann funktioniert wenigstens das antworten auf diese Mail.

   MailDoc.ReplyTo = "name@domäne.de"

Thomas

Ja, das ist eine Lösung, aber irgendwie nur eine Notlösung. Eine "ordentliche" Absendeadresse wäre schon was. Geht draussen doch niemanden etwas an wie der Notes Server heißt...

Gruß, Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: m3 am 18.02.09 - 09:26:20
Seufz. Würdet Ihr bitte die von mir verlinkte FAQ lesen? Dort steht ALLES drinnen - auch wie man den Absender "ändert".
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 18.02.09 - 10:38:05
Hallo m3,

habe mir deinen Link schon angesehen, der interessante Part dachte ich wäre hier:

Zitat
1) How to change the apparent sender of the agent generated mail.
Information on three different ways to do it with code samples has been moved to the "Troubleshooting agents" article.
http://www-10.lotus.com/ldd/today.nsf/62f62847467a8f78052568a80055b380/ef1565a0b202808285256c94004fd0fb?OpenDocument&Highlight=0,kadashevich

Aber: Draufgeklickt und kommt nix ausser 'ner Suchmaske....

Gruß, Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 18.02.09 - 10:42:03
ok, hab mal aufmerksam gelesen. Ist einfach nicht mehr richtig verlinkt der Artikel, da dieser jetzt in "Troubleshooting agents..." steckt.

Dort steht:

Zitat
How can I change the apparent sender of agent generated mail?

Sometimes you need to generate mail from an identity different from your own. For example, you may want to generate mail from the user Domino Administrator. There are three ways to do this:

    * Create a special ID for user Domino Administrator and sign the agent with that ID.
    * Use the Principal field in the agent code to override the From field.
    * Use the Run on behalf of field (new in Notes/Domino 6).

The first method is the simplest because it requires no coding. It does, however, involve licensing and maintaining IDs. The second method is more flexible, but requires some coding. You don't need any special rights, but the information about the original sender is maintained for auditing purposes. By default, the mail template displays the original sender's name in the sent by field under the From field. There are three ways to specify the Principal field:

    * doc.Principal="Joe User/Org@NotesDomain" where Joe User/Org has a Person record with an InternetAddress of your choosing. (Note that the string @NotesDomain must be present.)
    * doc.Principal="CN=Joe User/O=Org" where Joe User/Org has a Person record with an InternetAddress of your choosing.
    * doc.Principal=User@acme.org@NotesDomain <mailto:User@acem.org@NotesDomain>. (Note that the string @NotesDomain must be present.)

If you only care about the ReplyTo address, you can use it instead of the Principal, which changes both the From and ReplyTo:

Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim item As NotesItem
Dim ToWho(40) As String
Dim FirstName(40) As String
Dim Msg As String
Set db = session.CurrentDatabase
Set doc = New notesdocument(db)
'*******************************************************************

Count = 30
ToWho(0)="joe@yahoo.com"
FirstName(0)="Joe"

ToWho(1) = "teresa@yahoo.com"
FirstName(1)="Teresa"

<more initialization code removed>

doc.Principal = "julie@yahoo.com@NotesDomain"
doc.Form = "Memo"

doc.Subject=" Happy Holidays!"
For i=0 To count
Greet = "Hi " +FirstName(i) +", Happy Holidays!"
Msg1 ="additional text"
doc.Body=Greet + Msg1
Print toWho(i)
Call doc.Send(True,toWho(i))
Next


As we show in the preceding code, @NotesDomain is a string that is expected in the syntax. Omitting this is often the problem when people report that the Principal field is not working.

The third method (Run on behalf of) is new to Notes/Domino 6. This field in Agent Properties allows one user to run an agent as though it were invoked by another user. You need special rights to run agents on behalf of other users. These rights are controlled through the "Sign agents to run on behalf of someone else" field in the Security tab of the Server document. If they have this permission, mail appears to come from the name specified in the Run on behalf of field. This is a very high level of rights and should only be granted carefully, as it allows one user to run agents on behalf of other users, including having their ACL rights when accessing databases.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 18.02.09 - 10:45:05
So, nachdem dort steht...

Zitat
The first method is the simplest because it requires no coding. It does, however, involve licensing and maintaining IDs. --->>> Create a special ID for user Domino Administrator and sign the agent with that ID.

...und ich es quick and dirty haben möchte meine Frage:

Wie macht man das nun?

Gruß,
Ralf.

Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 23.02.09 - 22:29:15
1.) Darfst Du Notes-IDs erzeugen?
2.) Weisst Du, wie man dann damit umzugehen hat, um das Ziel zu erreichen?

Offensichtlich können nicht beide Fragen mit "ja" beantwortet werden, sonst würdest Du nicht von uns erwarten, dass wir Deine Arbeit machen.

Das soll als Erklärung dienen, warum hier niemand mehr antwortet: Du willst nicht lernen, Du willst eine schnelle Lösung (= fertige Lösung von anderen) - das funktioniert nicht.

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 24.02.09 - 18:11:14
Hallo Bernhard,

Zitat
1.) Darfst Du Notes-IDs erzeugen?

Ja, ich darf alles, ich bin der Chef hier...

Zitat
2.) Weisst Du, wie man dann damit umzugehen hat, um das Ziel zu erreichen?

Mit was, mit der Notes-ID?

Zitat
Offensichtlich können nicht beide Fragen mit "ja" beantwortet werden, sonst würdest Du nicht von uns erwarten, dass wir Deine Arbeit machen.

Ich habe doch nur um einen Tipp gebeten nicht darum, dass jemand meine Arbeit übernimmt.

Zitat
Das soll als Erklärung dienen, warum hier niemand mehr antwortet: Du willst nicht lernen, Du willst eine schnelle Lösung (= fertige Lösung von anderen) - das funktioniert nicht.

Dass ich nicht lernen will ist nicht richtig. Mein letzer Domino Admin Kurs liegt zwar ein paar Jahre zurück, aber ganz im Dunkeln fische ich nicht. Ausserdem habe ich 20 IT Jahre auf dem Buckel. Aber ich habe mittlerweile andere Dinge zu tun und mir würde es reichen, wenn mich jemand in die richtige Richtung schubst.

Zur Sache:

Ich habe schon so ziemlich alles probiert was als Lösung aufgeführt war, aber als Absender bleibt mein Servername wie in Stein gemeiselt stehen und das ich nicht gut so.

Die einfachste und intelligenteste Lösung schien mir das hier zu sein, aber es funktioniert bei mir (aus welchem Grund auch immer) nicht:

Zitat
The third method (Run on behalf of) is new to Notes/Domino 6. This field in Agent Properties allows one user to run an agent as though it were invoked by another user. You need special rights to run agents on behalf of other users.

Deshalb: ich brauch nur n' Tipp, that's all...

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: klox am 25.02.09 - 08:50:28
Wäre es nicht das einfachste eine spezielle ID (Info Mail/Deine Org) zu erzeugen, ihr die Email Adresse info@DeineOrg.de zuzuweisen, die ID in die ACL der entsprechende DB aufzunehmen, ausreichende Rechte zuzuweisen und den Agenten damit abzuzeichnen?

Danach müste @MailSend doch richtig funktionieren, oder?!?

Ich darf leider bei uns keine IDs erzeugen und hab auch keinerlei Praxis als NotedAdmin, aber so würde ich mir die Lösung vorstellen.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: DAU-in am 25.02.09 - 09:27:37
genau darüber reden sie doch in den letzten Postings ...  ::)
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 26.02.09 - 11:53:03
Hallo,

ein Frage noch, wie "zeichne ich einen Agent ab?"

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: eknori am 26.02.09 - 11:53:47
Über den Administrator CLient
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 26.02.09 - 11:56:40
Oder den Designer Client ;)
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: m3 am 26.02.09 - 12:33:39
Oder mit dem Teamstudio BuildManager, wenn Du Die DB ausrollst.  ;)
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 26.02.09 - 12:54:14
Hallo,

habe im Designer | Eigenschaften Agent | Ausführen im Namen von... den Benutzer gewählt der den Agent ausführen soll.

Im Designer habe ich unter Gemeinsamer Code | Agenten den Agenten mit der aktuellen ID, welche auch die Mails versenden soll signiert.

Aber: Pustekuchen, es steht immer noch der Servername als Absendeadresse.

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 26.02.09 - 18:00:39
So,

ein Teil funktioniert schon mal, der richtige Absender ist drin  ::)

Es funktioniert (bei mir) wohl nur per Script, ich habe das so gemacht:

Code
Sub Initialize
	Dim session As New NotesSession
	Set db = session.CurrentDatabase
	Set doc = New NotesDocument( db )
	doc.Form = "Memo"
	doc.SendTo = "info@meinedomain.de"
	doc.Subject = "Das ist die Betreffzeile"
	doc.Body = "Test"
	doc.Principal="Mein toller Absender <info@meinedomain.de@meinenotesdomain.org>"
	Call doc.Send( False )	
End Sub

Simple Frage für Euch Sepzialisten:

Wie kann ich dem doc.Body den Inhalt von zwei Feldern des Documents zuweisen???

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 26.02.09 - 18:36:15
doc.Body = anderesdoc.Feld1 (0) & Chr$ (10) & anderesdoc.Feld2 (0)

FYI: Chr$ (10) erzeugt einen Zeilenumbruch.

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 26.02.09 - 19:04:49
Hallo Bernhard,

danke dir!

Nur noch mal für mich zum Verstehen. Den Agent lasse ich zeitgesteuert nur auf Dokumente los, die ein bestimmtes Kriterium erfüllen, in meinem Fall ist das so, wenn das Feld Status "warten" enthält.

Wie kann ich denn genau auf das dokument zugreifen das der Agent dann in diesem Moment in Zugriff hat?

Was muss dann in deinem Beispiel:

Code
doc.Body = anderesdoc.Feld1 (0) & Chr$ (10) & anderesdoc.Feld2 (0)

an die Stelle "anderesdoc..." ?

Gruß,
Ralf.



Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: DAU-in am 26.02.09 - 20:48:04

Wie kann ich denn genau auf das dokument zugreifen das der Agent dann in diesem Moment in Zugriff hat?
notesagent.documentcontext oder so ähnl.

Zitat von: coma

Was muss dann in deinem Beispiel:

Code
doc.Body = anderesdoc.Feld1 (0) & Chr$ (10) & anderesdoc.Feld2 (0)

an die Stelle "anderesdoc..." ?

Gruß,
Ralf.


das Dokument, das die 2 anderen Felder entält ......
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 26.02.09 - 21:03:28
Ich bin jetzt irritiert ...
Hallo Bernhard,

ich habe nicht vor die Script Sparache zu lernen, ich wollte nur ein Problem lösen. Wenn das per Script zu aufwändig ist, fällt das eben flach. Muss doch noch eine andere Möglichkeit geben...

Gruß,
Ralf.

Willst Du - oder doch nicht?

Nebenbemerkung: Anita (DAU-in) hat den Thread nicht komplett gelesen - Du willst ja einen zeitgesteuerten (Backend-)Agent. Ihr Tipp hilft Dir also noch nicht weiter.

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: DAU-in am 26.02.09 - 21:24:59
ok, ok, Bernhard, ich probiers nochmals:

du holst dir eine Collection der betreffenden Dokumente und gehst sie mit getFirstDocument und getNextDocument durch? Oder wie bekommst du deine Dokumente?

und es hätte heissen müssen:
notessession.Documentcontext (Bernhard, du wirst alt!  ;D ;D )

Grüsse und gute Nacht

Dau-in

Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 26.02.09 - 21:49:02
und es hätte heissen müssen:
notessession.Documentcontext (Bernhard, du wirst alt!  ;D ;D )

Das wage ich zu bezweifeln, Anita. Ich werde nur immer effektiver: Der Ansatz war ja schon falsch  ;D

Beim nächsten Treffen (leider ja nicht beim Rudis EntwicklerCamp  :'() lade ich Dich auf jeden Fall auf einen Drink und / oder ein Essen ein. Ich habe auf Deine Posts in letzter Zeit zu viel gefrotzelt. Das war aber nicht böse gemeint.

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 27.02.09 - 08:04:49
Hallo Bernhard,

Zitat
Willst Du - oder doch nicht?

Naja, mit lernen hat das wenig zu tun, mehr so was wie früher Lego spielen. Ein paar Teile zusammen setzen und sehen ob's funktioniert...

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: DAU-in am 27.02.09 - 08:09:35
aber auch beim Lego spielen ist es von Vorteil, wenn man dahinter kommt, wie die Teile ineinander gesteckt werden.

grüsse

Dau-in
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 27.02.09 - 08:18:10
Hey,

ihr seid ja alle lieb und nett....  ;)

Werft mir immer mal ein Lego Steinchen zu, mal rot, mal weiß, mal mit 4 mal mit 8 Knöpfchen drauf und ich soll dann ein ganzes Haus draus bauen...

Also ganz ehrlich, ich brauche ein wenig mehr Input hier:

"notessession.Documentcontext"

Gruß,
Ralf.


Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 27.02.09 - 08:47:03
Mal laut nachgedacht anhand eines Beispiels aus der Notes Hilfe:

This agent displays the Subject item of the current document when run by @Command([ToolsRunMacro]) in a browser.

Code
Sub Initialize
  Dim session As NotesSession
  Set session = New NotesSession
  Dim doc As NotesDocument
  Set doc = session.DocumentContext
  Print "<H2>" + doc.Subject(0) + "</H2>"
End Sub

kann ich dann mit:

doc.NameMeinesFeldes(0) auf meine Felder zugreifen?

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: m3 am 27.02.09 - 08:54:54
Also ganz ehrlich, ich brauche ein wenig mehr Input hier:

"notessession.Documentcontext"

http://lmgtfy.com/?q=notessession.Documentcontext
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 27.02.09 - 09:03:59
Wie geil ist denn der Link?!

Ich brech ab... jetzt hab ich wieder was dazu gelernt!!!
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: DAU-in am 27.02.09 - 09:35:03

http://lmgtfy.com/?q=notessession.Documentcontext

 ;D  :D  >:D
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: DAU-in am 27.02.09 - 09:49:21
Hallo Bernhard,

Zitat
1.) Darfst Du Notes-IDs erzeugen?

Ja, ich darf alles, ich bin der Chef hier...

Zitat
2.) Weisst Du, wie man dann damit umzugehen hat, um das Ziel zu erreichen?

Mit was, mit der Notes-ID?

Zitat
Offensichtlich können nicht beide Fragen mit "ja" beantwortet werden, sonst würdest Du nicht von uns erwarten, dass wir Deine Arbeit machen.

Ich habe doch nur um einen Tipp gebeten nicht darum, dass jemand meine Arbeit übernimmt.

Zitat
Das soll als Erklärung dienen, warum hier niemand mehr antwortet: Du willst nicht lernen, Du willst eine schnelle Lösung (= fertige Lösung von anderen) - das funktioniert nicht.

Dass ich nicht lernen will ist nicht richtig. Mein letzer Domino Admin Kurs liegt zwar ein paar Jahre zurück, aber ganz im Dunkeln fische ich nicht. Ausserdem habe ich 20 IT Jahre auf dem Buckel. Aber ich habe mittlerweile andere Dinge zu tun und mir würde es reichen, wenn mich jemand in die richtige Richtung schubst.

....


Deshalb: ich brauch nur n' Tipp, that's all...


Schubsen  und Tipps geben tun wir doch

und ansonsten hätte ich noch Plan B:
da du der Chef bist: delegiere doch das Problem einfach nach unten!  ;D
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 27.02.09 - 09:51:09
Oder vergieb das Problem doch einfach an einen externen Dienstleister  ;)
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 27.02.09 - 09:59:54
Zitat
So,

ein Teil funktioniert schon mal, der richtige Absender ist drin  Roll Eyes

Es funktioniert (bei mir) wohl nur per Script, ich habe das so gemacht:

Code:

Sub Initialize
   Dim session As New NotesSession
   Set db = session.CurrentDatabase
   Set doc = New NotesDocument( db )
   doc.Form = "Memo"
   doc.SendTo = "info@meinedomain.de"
   doc.Subject = "Das ist die Betreffzeile"
   doc.Body = "Test"
   doc.Principal="Mein toller Absender <info@meinedomain.de@meinenotesdomain.org>"
   Call doc.Send( False )   
End Sub


Simple Frage für Euch Sepzialisten:

Wie kann ich dem doc.Body den Inhalt von zwei Feldern des Documents zuweisen???

Gruß,
Ralf.

Dein Ansatz ist nicht schlecht. Aber zwischen diesen beiden Zeilen musst du noch folgendes tun:
Zitat
   Set db = session.CurrentDatabase
   Set doc = New NotesDocument( db )

Entweder: Du holst dir eine Ansicht aus der Datenbank in der alle Dokumente aufgelistet sind, die den Status "warten" haben und durchläufst dann diese mit GetFirstDocument und GetNextDocument.

Oder: Du hast eine Ansicht in der alle Dokumente angezeigt werden und nach Status sortiert sind. Dann holst du dir die Ansicht und über eine NotesDocumentCollection die entsprechenden Dokumente. Die Collection durchläufst du dann wieder mit GetFirstDocument und GetNextdocument

Genug geschubst?
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 27.02.09 - 12:12:24
danke für das Schubsen erst mal...

muss aber erst mal was verstehen.

Der Agent hat Aufgrund der Auswahl doch sowieso nur die Dokumente im Zugriff die ich haben möchte, denn im Designer habe bei Dokumentenauswahl "entspricht Beispielmaske", dort steht in meinem Feld Status "warte".

Das funktioniert auch soweit, der Agent bearbeitet bei einem Testlauf nur diese Dokumente.

Jetzt möchte aus den Dokumenten auf die der Agent dann zugreift, jeweils ein bestimmtes Feld als Body an mein Mail übergeben. Desweiteren brauche ich aus dem Dokument die eMail Adresse, die auch in einem Feld hinterlegt ist.

Wäre das grundlegend von der Idee her richtig, wenn ich das so mache:

Code

Sub Initialize
	Dim session As New NotesSession
	Set db = session.CurrentDatabase
	Set doc = New NotesDocument( db )
	
	Dim currsession As NotesSession
	Set currsession = New NotesSession
	Dim currdoc As NotesDocument
	Set currdoc = session.DocumentContext	
	
	doc.Form = "Memo"
	doc.SendTo = currdoc.FeldIndemDieMailAdresseSteht (0)
	doc.Subject = "Hier der Betreff"
	doc.Body = currdoc.FeldIndemDasStehtWasInDenBodySoll (0)
	doc.Principal="Ich werde der Beste Notes Script Programmierer <info@scriptprofi.de@meinenotesdomain.org>"
	Call doc.Send( False )	
End Sub

Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: DAU-in am 27.02.09 - 12:32:29
'wenn du zeitgesteuert arbeitest, kannst du nicht den den in der View selektierten Dokumenten arbeiten
'wenn du die Doks selektieren willst, sieh dir  die klasse uiview an!

'hier Beispiel für zeitgesteuert
Sub Initialize
   Dim session As New NotesSession
   Dim db As Notesdatabase
   Dim view As NotesView
   Dim maildoc As Notesdocument
   Dim doc As NotesDocument
   Dim dc As NotesDocumentCollection
   Dim suchformel As String
   
   Set db = session.CurrentDatabase   
   suchformel = { Status = "warte"}
   Set dc = db.Search(suchformel,Nothing, 0)
   
   Set doc = dc.GetFirstDocument
   
   While Not doc Is Nothing
      Set maildoc = db.CreateDocument
      maildoc.form = "Memo"      
      maildoc.SendTo = doc.FeldIndemDieMailAdresseSteht (0)
      maildoc.Subject = "Hier der Betreff"      
      maildoc.Principal="Ich werde der Beste Notes Script Programmierer <info@scriptprofi.de@meinenotesdomain.org>"
      
      maildoc.Body = doc.Feld1 (0) & Chr$ (10) & doc.Feld2 (0)            
      Call maildoc.Send( False )   
      
      Set doc = dc.GetNextDocument(doc)
   Wend
   
End Sub


Edith: schalte 'option declare' ein!
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 27.02.09 - 12:47:11
Hey danke,

ich werde das mal testen. Du sagst:

Zitat
'wenn du zeitgesteuert arbeitest, kannst du nicht den den in der View selektierten Dokumenten arbeiten
'wenn du die Doks selektieren willst, sieh dir  die klasse uiview an!

Das funktioniert aber doch. Wenn ich den Agenten laufen lasse, selektiert er mir genau die beiden Dokumente in welchen das Feld Status den Wert "warten" hat und versendent auch nur an diese das Mail.

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: DAU-in am 27.02.09 - 12:53:32
Du startest den Agenten von Hand?
Dann ist er nicht zeitgesteuert.

Häkchen machen in der View <--> zeitgesteuert!
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 27.02.09 - 12:54:55
Nein, ich start den Agenten zeitgesteuert, zum Testen steht dieser auf 5 Minuten. Und er selektiert schön brav die zwei Dokumente die im entsprechenden Feld den gesuchten Wert haben.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: DAU-in am 27.02.09 - 14:03:21
Nein, ich start den Agenten zeitgesteuert, zum Testen steht dieser auf 5 Minuten. Und er selektiert schön brav die zwei Dokumente die im entsprechenden Feld den gesuchten Wert haben.


Sub Initialize
   Dim session As New NotesSession
   Set db = session.CurrentDatabase
   Set doc = New NotesDocument( db )
   
   Dim currsession As NotesSession
   Set currsession = New NotesSession
   Dim currdoc As NotesDocument
   Set currdoc = session.DocumentContext   
   
   doc.Form = "Memo"
   doc.SendTo = currdoc.FeldIndemDieMailAdresseSteht (0)
   doc.Subject = "Hier der Betreff"
   doc.Body = currdoc.FeldIndemDasStehtWasInDenBodySoll (0)
   doc.Principal="Ich werde der Beste Notes Script Programmierer <info@scriptprofi.de@meinenotesdomain.org>"
   Call doc.Send( False )   
End Sub



Wo werden die hier die gewünschten Dokumente selektiert?
Habe ich irgendetwas auf den Augen?
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 27.02.09 - 14:05:41
Über das Auwahlkriterium des Agenten.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: DAU-in am 27.02.09 - 14:10:47
Wo stellt man an dem Auswahlkriterium des Agenten ein, dass er die Dokumente mit Status 'Warten' nimmt?

Wenn das bei dir geht - ich kann das nicht einstellen ???
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: Felix Ziegler am 27.02.09 - 14:18:02
Auf der linken Seite ist in der Gliederung der Punkt "Dokumentenauswahl". Dort ist vermutlich eine Bedinung hinterlegt.

Unten drunter steht "Options", "Declarations", "Initialize" ... usw.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: TRO am 27.02.09 - 14:20:50
Nein, ich start den Agenten zeitgesteuert, zum Testen steht dieser auf 5 Minuten. Und er selektiert schön brav die zwei Dokumente die im entsprechenden Feld den gesuchten Wert haben.

Hallo coma,

definiere bitte den Begriff "selektiert" !
Meinst Du damit
a) in der (FrontEnd-) Ansicht ist ein Häkchen davor

oder

b) der Agent verwendet Werte aus diesen Docs (und nur aus diesen Docs)


???

Thomas
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 27.02.09 - 15:11:24
Hallo zusammen,

mit selektieren meine ich:

Domino Designer | Gestaltungsansicht des Agenten.
Objekte "Name Meines Agenten"
Dokumentenauswahl
Bedingung "Beispielmaske ausfüllen"
Dann die Maske auswählen
und das gewünschte Feld befüllen.

Also Antwort b)....

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: coma am 27.02.09 - 15:25:26
Hey DAU-In,

du trägst deinen Namen zu unrecht! Dein Script funktioniert tadelos bei mir. ;D

Danke!

Darf ich dir eine Packung Kaffee zukommen lassen?

Gruß,
Ralf.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: tron55 am 22.06.11 - 10:50:16
Hi,
Ich habe mir nun einiges hier zu diesem Thema durchgelesen , auch die FAQ ... scheint ja ein Reizthema zu sein.

Ich bin noch am üben aber ich versuche meinen Agenten der aktuell über eine MailinDb läuft und dort automatisch auf eingegangene Mails antwortet,
(In Formelsprache geschrieben) nun zu Lotusscript umzuschreiben, damit die Antwort an den Absender nicht jedesmal mit FROM:Servername/Firma kommt.

Code
@MailSend(From;"";"";"Antwort: " + Subject;"";"
Test
");
SELECT @All

Mit den ganzen Anregungen aus den Threads die ich gelesen habe wurde dann das hier drauß:

Zitat
1#Sub Initialize
2#Dim session As New NotesSession
3#Set db = session.CurrentDatabase
4#Set doc = New NotesDocument( db )
   
5#Dim currsession As NotesSession
6#Set currsession = New NotesSession
7#Dim currdoc As NotesDocument
8#Set currdoc = session.DocumentContext   
   
9#doc.Form = "Memo"
10#doc.SendTo =""
11#doc.Subject = ""
12#doc.Body = Test
13#doc.Principal="Absender@firma.com"
14#Call doc.Send( False )   
End Sub


Kann mir bitte jemand sagen ob die beiden Codeschnipsel genau das selbe tun oder ob ich irgendwo einen Fehler drin habe beim LotusScript.

Zweifel habe ich vor allen an der Line #10.
Die Mail muss ja immer an den gehen , der ursprünglich an die MailIn Db gemailt hat.
Klappt das so ?
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: ascabg am 22.06.11 - 10:54:14
Hallo,

Sollte NICHT funktionieren.

Woher soll Notes wissen, an wen die Mail zurueckgesendet werden soll.
Es sind ja keine Empfaenger vorhanden.


Andreas
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: tron55 am 22.06.11 - 10:55:10
Hi,

danke für die schnelle Antwort.

Ok,
mist mit der Formelsprache oben klappt das nämlich.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 22.06.11 - 10:57:59
Und als Absender wird bestenfalls bei einigen MUAs nur Principal angezeigt, in der Regel aber sowas wie "Absender, gesendet von Principal".

Soooo funktioniert das also (zweifach) nicht.

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: tron55 am 22.06.11 - 11:04:25
Wäre auch zu schön gewesen wenn mal irgendwas einfach geht ohne 20 Arbeitsstunden da rein zu investieren.  ::)
Trotzdem danke an euch beide.

Das mit der Id erstellen und dann den Agenten signen ist auch nicht so das wahre bei einer MailinDB
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: koehlerbv am 22.06.11 - 11:06:42
Andere brauchen dafür zwei Minuten  ;)

Und wenn Dir das programmieren schwer fällt - warum verwendest Du dann nicht die TeamMailbox? Die kann das von Hause aus.

Bernhard
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: tron55 am 22.06.11 - 11:20:42
Ne
Ich habe halt nicht so viel Plan von LotusScript und keine große Zeit mich damit zu beschäftigen.
Programmieren fällt mir ansonsten nicht schwer, Programmieren ist ja nicht zwangsläufig LotusScript...

Ja die Teammailbox schaue ich mir bei Gelegenheit mal an, da hört man immer wieder von, die muss gut sein :-)
Dummerweise gibts die MailinDB bei uns halt schon für sehr spezialisierte Sachen und da möchte ich nicht umbedingt dran drehen nur für diese eine Funktion.


PS: juhu 100
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: ascabg am 22.06.11 - 11:28:50
Na dann lass doch einfach eine neue Datenbank basierend auf dem Template der Teammailbox anlegen.


Andreas
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: tron55 am 22.06.11 - 11:45:46
Vielleicht verstehe ich ja was falsch aber das klappt nicht ...

Ich habe eine MailinDB bla123.nsf
Wenn Personen an bla123@firma.de mailen ,bekommen Sie automatisch eine Antwortmail von einem Agenten.
(leider kommt die Antwortmail nicht von bla123@firma.de, wie erwähnt)

Member der gruppe bla123 bekommen eine Mail , das es einen Maileingang gibt.
Außerdem gibt es eine Kategorisierungsmöglichkeit der eingangenen Mails.

Lange Rede kurzer Sinn,
die Teammailbox ist  vielleicht toll aber die muss ich mir mal genau anschauen bei Gelegenheit.
Vielleicht stellt hier ja irgendwer mal einen Codeschnipsel zu dem Thema on , der für meine Zwecke dienlich ist, dann nehm ich das weil wie Bernhardt schon sagte ist es ja scheinbar keine große Sache.

Ansonsten mailt wohl weiter der Server durch die Gegend.
Trotzdem danke.
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: ascabg am 22.06.11 - 11:50:02
Wenn Du es unbedingt machen willst, dann muss Du die Mail direkt in der mail.box erstellen.
(ich weiss, dass jetzt wieder viele aufschreien werden, wegen dieser Thematik)


Andreas
Titel: Re: Absendeadresse wenn ein Agent ein Mail versendet?
Beitrag von: ata am 27.06.11 - 07:49:18
... bei diesem Stunt sollte auf jeden Fall geklärt sein, ob es Richtlinien in der Firma gibt, die das nicht ausdrücklich untersagen - der Absender der Mail soll auch entsprechend der vorgesehenen Funktionalität von Notes benannt sein. Es gibt Firmen, bei denen dies gar nicht erlaubt ist...

Toni