Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: bml am 25.08.03 - 13:39:38
-
Hi Zusammen
Ich hab´da mal wieder so ein komisches Problem, zu dem ich keine Lösung weiß
Ich möchte ein bestimmte Datei als Attachment versenden....- Klingt doch erstmal recht simpel.
So ... aber jetzt wird es spannend. Die Email kommt auch an, das Attachment ist auch da, aber daneben ist noch ein Attachment. Ich habe also 2 Attachments ich weiß nur nicht, wo das Zweite herkommt.
Das erste Attachment besitzt den richtigen Dateinamen und das zweite Attachment hat so komische Namen (Bsp.ATTRBWN2)
Kann mir vielleicht jemand helfen.
ich sage auch schon mal, wie immer , brav danke - DANKE
-
Hi,
wie wird den die Mail erstellt? Per Script? Dann poste mal den Code.
Deine Beschreibung deutet darauf hin, dass im Dokument die Datei 2x vorhanden ist. Notes vergibt dann für das 2. Attachment einen internen Namen.
Andreas
-
Hi Andreas
hier das gewünschte Posting
<Script Bibliothek>
Function CreateEmail(uidoc As NotesUiDocument) As Integer
Dim ws As NotesUIWorkspace
Dim docMail As NotesDocument
Dim rtitm As NotesRichTextItem
Dim itmSubject As NotesItem
Dim itmrecipients As NotesItem
Dim itmSaveFile As NotesItem
Dim object As NotesEmbeddedObject
'--> Funktion wird auf Failure gesetzt
CreateEmail = False
'--> Instanzierung der benutzten NotesObjekte
Set docMail = uidoc.Document
Set rtitm = New NotesRichTextItem(docMail,"Attachment")
Set itmSubject = docMail.GetFirstItem("Betreff")
Set itmRecipients = docMail.GetFirstItem("SendTo")
Set rtitm = docMail.GetFirstItem("Attachment")
Set itmSaveFile = docMail.GetFirstItem("SaveFile")
Set object = docMail.GetAttachment( itmSaveFile.Values(0))
Set object= rtitm.EmbedObject(EMBED_OBJECT, "",itmSaveFile.Values(0))
'<--
'--> Überprüfung, ob das verwendete Feld vom Typ ein RichTextFeld ist.
' Wenn das Feld ein RichTextFeld ist, wird versucht die ausgewählte Datei anzuhängen.
If ( rtitm.Type = RICHTEXT ) Then
Set object = rtitm.EmbedObject( EMBED_ATTACHMENT, "",itmSaveFile.Values(0))
If ( object Is Nothing ) Then
Messagebox( "Keine Datei ausgewählt." )
Exit Function
End If
End If
'<--
'--> Email wird zusammengesetzt
docMail.Form = "Memo" '--> Dokumentenart
docMail.Subject = itmSubject.Values(0) '--> Titel oder Betreff der Email
docMail.SentTo = itmRecipients.Values(0) '--> Empfänger
docMail.Body = object.Object '--> Attachment
'<--
'--> Mail wird versendet
Call docMail.Send(False)
'--> Ausgabe: Nach versenden des Dokuments
Print("Email wurde an Empfänger versendet")
'<--
'--> Dokument wird gesichert
Call docMail.Save(True,False)
'<--
'--> Funktion wird auf Successfull gesetzt
CreateEmail = True
End Function
<Aufruf der Function>
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
Call CreateEmail(uidoc) <---- Aufruf
End Sub
SO, Viel Spass beim lesen
-
Hi,
wenn ich das richtig sehe, ist das Attachment doppelt: Einmal im Feld Attachment und einmal im Feld Body.
Andreas
-
@glombi
isch hab heute wohl einen Bretterzaun vorm Kopf
aber ich verstehe, nicht ganz was du meinst
Im Feld Body muss es stehen, weil das der Body der Mail ist... oder was meinst du ??
-
Ja, aber es steht doch schon im Feld "Attachment" als Anhang
Set object = rtitm.EmbedObject( EMBED_ATTACHMENT, "",itmSaveFile.Values(0))
und rtitm ist das Feld Attachment
Set rtitm = docMail.GetFirstItem("Attachment")
Ist es so gedacht, dass Du das aktuelle Dokument sendest oder willst Du ein neues temporäres Dokument erstellen und dieses senden?
Andreas
-
eigentlich will schon nur das "original Dokument" senden - kein Temp Dok
meinst du diese Zeile ist zu viel ??
Set object= rtitm.EmbedObject(EMBED_OBJECT, "",itmSaveFile.Values(0))
-
Es sollte so aussehen:
Function CreateEmail(uidoc As NotesUiDocument) As Integer
Dim ws As NotesUIWorkspace
Dim docMail As NotesDocument
Dim rtitm As NotesRichTextItem
Dim itmSubject As NotesItem
Dim itmrecipients As NotesItem
Dim itmSaveFile As NotesItem
Dim object As NotesEmbeddedObject
'--> Funktion wird auf Failure gesetzt
CreateEmail = False
'--> Instanzierung der benutzten NotesObjekte
Set docMail = uidoc.Document
Set rtitm = New NotesRichTextItem(docMail,"Body")
Set itmSubject = docMail.GetFirstItem("Betreff")
Set itmRecipients = docMail.GetFirstItem("SendTo")
Set rtitm = docMail.GetFirstItem("Body")
Set itmSaveFile = docMail.GetFirstItem("SaveFile")
Set object = docMail.GetAttachment( itmSaveFile.Values(0))
Set object= rtitm.EmbedObject(EMBED_OBJECT, "",itmSaveFile.Values(0))
'<--
'--> Überprüfung, ob das verwendete Feld vom Typ ein RichTextFeld ist.
' Wenn das Feld ein RichTextFeld ist, wird versucht die ausgewählte Datei anzuhängen.
If ( rtitm.Type = RICHTEXT ) Then
Set object = rtitm.EmbedObject( EMBED_ATTACHMENT, "",itmSaveFile.Values(0))
If ( object Is Nothing ) Then
Messagebox( "Keine Datei ausgewählt." )
Exit Function
End If
End If
'<--
'--> Email wird zusammengesetzt
docMail.Form = "Memo" '--> Dokumentenart
docMail.Subject = itmSubject.Values(0) '--> Titel oder Betreff der Email
docMail.SentTo = itmRecipients.Values(0) '--> Empfänger
'<--
'--> Mail wird versendet
Call docMail.Send(False)
'--> Ausgabe: Nach versenden des Dokuments
Print("Email wurde an Empfänger versendet")
'<--
'--> Dokument wird gesichert
Call docMail.Save(True,False)
'<--
'--> Funktion wird auf Successfull gesetzt
CreateEmail = True
End Function