Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: BMT216A am 19.09.11 - 11:15:03

Titel: Mail aus uidoc versenden - gelöst - Danke
Beitrag von: BMT216A am 19.09.11 - 11:15:03
Hallo,

ich habe folgendes Problem und komme zu keiner Lösung.

Ich habe ein im uidoc geöffnetes Dokument.
Über den Button speichern soll das Dokument gespeichert werden und ein Mail versandt werden.
Code
Call DokumentAbschliessen
Call uidoc.Print ()
Call Mailversand
Call uidoc.Close (True)

Das Call Mailversand soll einfach ein Mail verschiken.

Code
                Dim cr As String
	Dim Empfaenger As String
	Dim Mailtext As String
	Dim KampagnenUNID As String
	
	Set db = session.CurrentDatabase
	Set uidoc = ws.CurrentDocument   
	Set doc = uidoc.Document
	
	cr = Chr(10) & Chr(13)
	KampagnenUNID = doc.Getitemvalue("KampagnenUNID") (0)
	
	'Mail zusammenbauen mit Doc-Link
	'Erstellen des Empfaengers
	Empfaenger = "_Kampagnen_ABT500/xxx/xxx"
	Mailtext = "Sehr geehrte Kollegin," + cr +_ 
	"Sehr geehrter Kollege," + cr + cr + _
	"ein neuer Auftrag liegt in der Datenbank Anforderungen vor. " + cr + cr + _
	"Anbei der DocLink zum Aufrtag. " 
	
	'email versenden
	Set email = New NotesDocument( db )
	email.form = "Memo"
	email.Subject = "Ein neuer Auftrag aus der Datenbank Anforderungen liegt vor!" 
	email.SendTo = Empfaenger
	Set rtitem = New NotesRichTextItem( email, "Body" )
	Call rtitem.AppendText (Mailtext)
	Call rtitem.AppendDocLink( doc, "DocLink zur Anforderung" )
	Call email.Send (True)
	
	'doc speichern
	Call uidoc.Refresh
	Call doc.Save(True, False)

Beim email.Send kommt dann der Fehler.

Habe grad das Bäume und Waldproblem und finde den Fehler nicht.

Vielen Dank für Eure Hilfe

Chris


Titel: Re: Mail aus uidoc versenden
Beitrag von: Banni am 19.09.11 - 11:22:46
Und der Fehler lautet?

Ist uidoc ein Dokument in der Mail-DB? Gibt es die Maske Memo überhaupt in der DB? Das so als erste Ansätze.

Jan
Titel: Re: Mail aus uidoc versenden
Beitrag von: BMT216A am 19.09.11 - 11:27:06
Hi Jan,

oohs, die Fehlernummer hab ich in meinem Post wohl vergessen.
4294 ist der Fehler.
Maske gibt es. Der Fehler muss irgendwie mit dem Versenden des Mails zu tun haben.
Den Empfänger gibt es aber!

Ciao
Titel: Re: Mail aus uidoc versenden
Beitrag von: DAU-in am 19.09.11 - 11:30:42
Error 4294: Unable to send mail, no match found in Name & Address Book(s)

irgendwas ist mit dem Empfänger oder der server hat kein Verbindungsdokument

edith: You'll need to configure the servers name on the Servers TAB in your Location.
Titel: Re: Mail aus uidoc versenden
Beitrag von: klaussal am 19.09.11 - 11:31:23
Zitat
Das so als erste Ansätze.

Und was sagt der Debugger ?
Fehler 4294 sagt mir erst einmal nix.
Titel: Re: Mail aus uidoc versenden
Beitrag von: BMT216A am 19.09.11 - 11:41:46
Mein Freund der Debugger sagt einiges, mein "Errorhandler" folgendes:

4294 - User defined Error

Wenn ich die Adresse aus dem Script in mein Mail kopiere funktioniert es aber.
Jetzt mal ne blöde Frage, geht das mit Gruppen nicht?
Es ist nämlich eine Gruppe. Ich muss aber an die Gruppe schicken, da sich der Empfängerkreis ständig ändert.

Vielen Dank schon Mal

Chris
Titel: Re: Mail aus uidoc versenden
Beitrag von: klaussal am 19.09.11 - 11:47:00
Klar geht das.

Ich mache das hier so, dass ich ein spezielles Dokument mit dem Empfänger angelegt habe.
Das Script holt sich dann das Dokument, kopiert den Empfänger von rechts nach links und das war's.
Hat auch den Vorteil ,dass man das Script nicht anpassen muss bei Änderungen.
Titel: Re: Mail aus uidoc versenden
Beitrag von: Peter Klett am 19.09.11 - 11:48:00
Zwei Hinweise:

Bist Du sicher, dass Du die Maske mit versenden willst?

Call email.Send (True) sendet die Maske, falls Du das nicht willst, schreib Call email.Send (False).

Wenn die Gruppe im Adressbuch auf dem Server liegt, schreib mal die Adresse mit Domäne

Anstelle

Gruppe

Gruppe@Domäne

Nur ein Bauchgefühl.

Eine weitere Möglichkeit wäre, dass Du keine Vorgabeansicht in der Datenbank hast, aber da müsste eine andere Fehlermeldung kommen. Solltest Du aber der Vollständigkeit halber mal prüfen.
Titel: Re: Mail aus uidoc versenden
Beitrag von: BMT216A am 19.09.11 - 11:55:48
Hallo Peter,
Hallo Klaus,

die Maske soll mit versandt werden (hier hab ich derzeit nur MEMO stehen, da ich hier den Fehler vermutet hatte. Später soll es eine eigene Maske sein)
Vorgabeansicht gibt es in der DB!

Der Fehler war tatsächlich, dass ich die Gruppe ohne @Domäne hatte.
Jetzt geht es.

Bekomme aber jetzt beim Öffnen des Links einen Object Variable not set.

Den sollte ich aber auch so finden.

@Klauss - kannst Du Deine Lösung mal näher erläutern?

Dank euch -

Es hat wie immer SPASS gemacht mit Euch zu arbeiten.

Viele Grüße
Chris
Titel: Re: Mail aus uidoc versenden - gelöst - Danke
Beitrag von: klaussal am 19.09.11 - 12:02:02
Es wird ein Dokument angelegt, wo der Empfänger (Wert aus Adressbuch) angelegt wird.

Das Script holt sich dann das Dok ... (siehe oben)

Code
Set viewMail = db.getView("mailempfaenger_aenderungsmitteilung")	
	Set docMail = viewMail.getfirstDocument
	If Not docMail Is Nothing Then
	Else
		Msgbox "Kein Empfänger vorhanden, Mail nicht verschickt !" , 12, "Abbruch"
		Exit Sub
	End If
	docSend.SendTo = docMail.name
Titel: Re: Mail aus uidoc versenden - gelöst - Danke
Beitrag von: Peter Klett am 19.09.11 - 12:12:35
Bist Du wirklich sicher, dass Du die Maske mitschicken willst?

Wenn ich Administrator wäre, würde ich generell keine Mails durchlassen, die die Maske enthalten, denn da kann man den größten Schweinkram reinbauen. Wenn dann noch die ECL nicht 100 %ig dicht ist, hat man den Trojanern Tür und Tor geöffnet.

Logisch lässt sich das bestimmt auch ohne mitgesendete Maske realisieren.
Titel: Re: Mail aus uidoc versenden - gelöst - Danke
Beitrag von: ghostmw am 19.09.11 - 14:54:45
Hallo klauss,

kleiner Tip am Rande, wenn du einen User defined-error erhälst:

Benutze zum Ermitteln des realen Fehlertexten immer Error$ () ohne Parameter, da der Fehlertext überschrieben werden kann beim Werfen des Fehlers.

Error$( Fehlernummer )
liefert immer den von Lotus Notes vordefinierten Wert und alles ab einer gewissen Nummer ist als Standardtext "user-defined error".
Titel: Re: Mail aus uidoc versenden - gelöst - Danke
Beitrag von: klaussal am 19.09.11 - 14:56:52
Code
Hallo klauss,...

Du meinst bestimmt Chris...
Titel: Re: Mail aus uidoc versenden - gelöst - Danke
Beitrag von: ghostmw am 19.09.11 - 14:57:41
Klaro ... danke