Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: baba am 26.09.02 - 16:07:44
-
Hallochen allerseits,
für die Internetseiten die nun aus LoNo kommen muss ich noch ein Kontaktformular basteln.
So mit sendmail und "vielen Dank...." und so.
Wer hat das schon gemacht und kann mir ein "Muster" zur Verfügung stellen?
Herzlichen Dank im voraus!
gruss aus dem grauen Zürich :(
Baba
-
Hallo Baba
Erstelle einfach eine Maske mit dazugehörenden Feldern (Name, Vorname, Fax, Email usw.) und anschliessend eine Schaltfläche mit folgender Formel:
@Command([FileSave]);
@MailSend("muster@muster.ch" ; "muster2@muster.ch" ; "" ; "Bitte kontrollieren und evtl. bearbeiten"; "" ; "Internet - Formular == > ";[IncludeDoclink]);
@Command([FileCloseWindow]);
@Command([Compose];"Gesendet") ==> ruft andere Maske an ( Kontaktformular wurde gesendet, Besten Dank)
gruss aus Luzern
-
Hallo Viktor
herzlichen Dank, ich werd das gleich versuchen :-*. Wie machst du das mit den mails, die würden ja in der DB gespeichert. Einen Agenten basteln der diese mails alle par minuten löscht oder so??
Gruässli usem nömm sooo grauä *aberimmernobizzli* züri
baba
-
Hallo Baba
Hier gibt es nur solche Mails die an entsprechende Benutzer (mit Dokument Verknüpfung) gesendet werden (als Hinweis). Solche Mails können von Benutzer manuell gelöscht werden. Wichtig sind die Dokumente die in der Datenbank immer gespeichert werden (die dürfen (nicht) gelöscht werden). :o
Gruss Viktor
-
Möglicherweise bin ich etwas doof heute, oder einfach nur total müde...
also ich hab das formular jetzt mal so gemacht. Wie nun aber überprüfe ich die Felder auf Inhalt und richtigkeit?
also ich meine die action hat ja jetzt eine @Formel beim Click als aufgabe. gleichzeitig sollte aber ein javascript aufgerufen werden um die felder zu überprüfen.....
wie macht ihr das? was für möglichkeiten habe ich das mail (einigermassen formatiert) als astreines email zu senden.
danke und ich geb mir mühe morgen nicht mehr so bescheuert zu sein... :-/
gruss
baba
-
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
-
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
-
ciao baba
hab dir eine demo db ins mail gestellt
bye bye z