Domino 9 und frühere Versionen > Entwicklung
Kontaktformular Internet
zaphod:
hi baba
ich hätte noch eine andere variante:
1. erstelle einen script agenten
(alles markieren > kopieren > in neuen agenten (gemeinsam benutzt, "run once, @commands... ", lotusscript) wieder einfügen) mit folgendem code:
------------------------------------------------ ab hier >
Dim db As NotesDatabase
Dim docmail As notesdocument
Sub Initialize
On Error Goto ErrorHandler
Dim s As New notessession
Dim doc As notesdocument
Dim mailList List As String
Set db = s.CurrentDatabase
Set doc = s.DocumentContext
'-- Mail zusammenstellen'
sendTo$ = "baba@baba.ch"
fromAdr$ = "baba@baba.ch"
subject$ = "Feedback Formular"
body$ = "___________________________________________________________________________"& Chr(13) &_
implode(doc.txtBody, Chr(13)) & Chr(13)&_
"___________________________________________________________________________"& Chr(13)
' -- für die Buchhaltung
doc.docSentTo = sendTo$
doc.docSentAt = Now
doc.docSentFrom = fromAdr$
'-- Mail versenden
Call SendMail(subject$, body$ & msg, sendTo$, fromAdr$)
'-- HTML Antwort an den Browser senden
Print "<html><head><title>Danke für Ihren Beitrag</title></head>"
Print "<body><h2>Danke für Ihren Beitrag, das Dokument wurde gespeichert oder was auch immer</h2></body></html>"
Exit Sub
ErrorHandler:
Print "Agent: <agentname> <br>Error " & Str(Err) & ": " & Error$ & "<br>"
Print "Line: " & Str(Erl)
End Sub
Sub SendMail(subject As String, Body As String, sendTo As String, fromAdr As String)
Dim mailBox As New NotesDatabase("","mail.box")
Dim s As New notessession
Set db = s.CurrentDatabase
Set docMail = New NotesDocument( db )
docMail.Form = "Memo"
docMail.Importance = "2"
docMail.PostedDate = Now
docMail.From = fromAdr
docMail.Subject = subject
docMail.SendTo = sendTo
docMail.Recipients = sendTo
docMail.Body = "___________________________________________________________________________" & Chr(13)_
& Body
Call docMail.save (0,0)
Call docMail.copyToDatabase( mailBox)
Call docMail.remove (True)
End Sub
Function implode(arr As Variant , separator As String)
'Beschreibung: Generiert aus einem Array ein String mit definiertem Separator
'Par1: muss als array übergeben werden, d.h Listenfeld als Object (doc.feldname)
'Par2: kann beliebige Zeichenkette enthalten
Dim x As Double
Dim fixedImplode As String
fixedImplode = ""
If (separator = "") Then
separator = " "
End If
For x = 0 To Ubound(arr)
fixedImplode = fixedImplode + (separator + arr(x))
Next
implode = Mid$(fixedImplode,Len(separator)+1,Len(fixedImplode))
End Function
<--- bis da ------------------------------------------------
2. rufe den agenten nun im "webQuerySave" event deiner Kontaktform auf (@Command([ToolsRunMacro]; "<name des agenten>")
3. jetzt kannst du deinen button mit javasript die validierung vornehmen lassen und wenn es ok ist das form mit submit absenden. somit wird der agent angeworfen, das mail versendet und noch eine kleine dankesrede platziert...
alles klar?
bye bye z
baba:
Hallo zaphod
erstmal herzlichen dank!
jetzt meine frage: ich habe den Agenten erstellen wollen aber leider hat mir LoNo das script nicht abgekauft! Fehlermeldung:
An operator or semicolon was expected but none was encountered 'db'
mag das dran liegen, dass ich eine englische version habe. ???
sorry bin noch in den @commands schuhen und mit dem scripten hab ichs nicht so.......(muss ich noch üben) :-/
herzlichen dank für die hilfe
gruss baba
zaphod:
ciao baba
hab dir eine demo db ins mail gestellt
bye bye z
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln