Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: _Christian_ am 01.04.08 - 15:57:22

Titel: Probleme beim automatischen Erstellen einer Mail
Beitrag von: _Christian_ am 01.04.08 - 15:57:22
Hallo zusammen,

ich habe folgendes Problem:

Ich möchte eine Mail auf Knopfdruck erstellen, die Daten aus dem aktuellen Dokument in einerMail öffnet um diese weiterleiten zu können.

Funktioniert soweit ganz gut
Dummerweise schaffe ich es aber nicht den erstellten Text vor der Signatur einzufügen.
Der Text wird immer hinter der Signatur abgedruckt. ???

Kann mir da jemand helfen?

Hier ein Auszug aus meinem Code:

Dim rtitem As NotesRichTextItem
   Set rtitem = New NotesRichTextItem ( mailDoc, "ody" )
   Call rtitem.AddNewline(1)
   Call rtitem.AppendText ("Dear Customer,")
   Call rtitem.AddNewLine(1)
   Call rtitem.AppendText("your registration was successful!")
   Call rtitem.AddNewLine(1)
   Call rtitem.AppendText("Please enter the code below to complete registration.")
   Call rtitem.AddNewline(2)
   Call rtitem.AppendText("User: " + User)
   Call rtitem.AddNewline(1)
   Call rtitem.AppendText("Serial: " + Serial)
   Call rtitem.AddNewline(1)
   Call rtitem.AppendText("Registration Key: " + RegCode)
   
' fill other fields
   
   mailDoc.Subject = "Successful Registration!"
   mailDoc.EnterSendTo = SendTo
   mailDoc.Body = rtitem.GetFormattedText(False,0)

Mfg

Christian
Titel: Re: Probleme beim automatischen Erstellen einer Mail
Beitrag von: koehlerbv am 01.04.08 - 16:22:56
Hier fehlen entscheidende Teile des Codes - vor allem ist nicht ersichtlich, was Du noch im Frontend tust (das Einfügen der Signatur ohne Programmierung wäre Frontend!).

Mehr Input, mehr Output.

Bernhard
Titel: Re: Probleme beim automatischen Erstellen einer Mail
Beitrag von: _Christian_ am 01.04.08 - 16:27:05
Hier mein kompletter Code des Buttons:

Ps: Meine Signatur ist eine htm-Datei die automatisch eingefügt wird.

Sub Click(Source As Button)
' user maildatabase
   Dim userMailDb As Variant
   userMailDb = Evaluate("@MailDbName")
   
' open maildatabase
   Dim mailDb As New NotesDatabase(userMailDb(0), userMailDb(1))
   
' create mail
   Dim wrk As New NotesUIWorkspace
   Dim mailDoc As NotesDocument
   Set mailDoc = mailDb.createDocument()
   
'open current document
   Dim forDoc As NotesUIDocument
   Set forDoc = wrk.CurrentDocument
   
   
   
   
   'get information from current document
   
   Dim user,serial,regcode,sendTo As String
   User = forDoc.FieldGetText("User")
   Serial = forDoc.FieldGetText("Serial")
   RegCode = forDoc.FieldGetText("RegCode")
   SendTo = forDoc.FieldGetText("SentTo")
   
   'create Mailbody (NotesRichTextItem)
   
   Dim rtitem As NotesRichTextItem
   Set rtitem = New NotesRichTextItem ( mailDoc, "ody" )
   Call rtitem.AddNewline(1)
   Call rtitem.AppendText ("Dear Customer,")
   Call rtitem.AddNewLine(1)
   Call rtitem.AppendText("your registration was successful!")
   Call rtitem.AddNewLine(1)
   Call rtitem.AppendText("Please enter the code below to complete registration.")
   Call rtitem.AddNewline(2)
   Call rtitem.AppendText("User: " + User)
   Call rtitem.AddNewline(1)
   Call rtitem.AppendText("Serial: " + Serial)
   Call rtitem.AddNewline(1)
   Call rtitem.AppendText("Registration Key: " + RegCode)
   
' fill other fields
   
   mailDoc.Subject = "Successful Registration!"
   mailDoc.EnterSendTo = SendTo
   mailDoc.Body = rtitem.GetFormattedText(False,0)
   
'open created mail
   wrk.editDocument True,mailDoc
   
End Sub


Ich bräuchte also eine Funktion oder Formel die es mir erlaubt einen Text in die Mail einzufügen, und zwar am Anfang des Body Feldes, da die Signatur schon beim Erstellen einer neuen Mail importiert wird.

Mfg

Christian
Titel: Re: Probleme beim automatischen Erstellen einer Mail
Beitrag von: koehlerbv am 01.04.08 - 16:40:58
Wenn Du den eigentlichen Mail-Inhalt im Backend erzeugst, musst Du auch die Signatur dort erzeugen. Du hast Dir da ein ziemlich komplexes Thema (Frontend vs. Backend plus RichText) vorgenommen ...

Weiters:
 Dim user,serial,regcode,sendTo As String
Du weisst aber schon, dass nur die Variable "sendto" vom Typ String ist - der Rest ist vom Typ Variant. Das hat zwar mit Deinem problem nichts zu tun, aber sollte dennoch bekannt sein.

Bernhard
Titel: Re: Probleme beim automatischen Erstellen einer Mail
Beitrag von: _Christian_ am 01.04.08 - 16:47:02
Das würde dann ja heissen, dass jeder, der dieses Feature benutzt, das automatische Anhängen der Signatur deaktivieren muss.
Und ich müsste den Aufruf der Signatur in meinen Code mit hineinnehmen.
Oder kennt jemand eine Lösung mit der man dieses Problem eleganter lösen kann?

Bin für jede Hilfe dankbar

Mfg

Christian
Titel: Re: Probleme beim automatischen Erstellen einer Mail
Beitrag von: LN4ever am 01.04.08 - 20:55:03
Da du kein Feld form mitgibst, öffnet sich das neue Mail-Dokument mit der Vorgabemaske MEMO. Schrieb doch einfach noch die beiden Zeilen

maildoc.form="Bookmark"
maildoc.~$HideMailHeader="1"

rein. Dann wird keine Signatur gezogen.

Mit den Standard-Bordmitteln ist das der einfachste Weg, die Signatur zu umgehen (du kannst auch die Telefonnotiz nehmen - die zieht auch keine Signatur).

Sonst wird es aufwändig.

Gruß

Norbert
Titel: Re: Probleme beim automatischen Erstellen einer Mail
Beitrag von: _Christian_ am 02.04.08 - 11:40:49
Vielen Dank für die Tipps...

Hab das Problem auf ne andere Art gelöst:

Öffne das erstellte Mailfile nochmal und schreib die Daten dann rein.
Das rtitem fällt dabei weg

Code:

Dim uiMailDoc As NotesUIDocument
   Set uiMailDoc = wrk.editDocument (True,mailDoc)
   
   Call uiMailDoc.GotoField("Body")
   Call uiMailDoc.InsertText("Dear Customer, " +Chr(10))

Mfg

Christian