Domino 9 und frühere Versionen > ND8: Entwicklung
Attachment im Backend mit JAVA anhängen um Icon beizubehalten?
OlTu:
Die Frage richtet sich mehr an diejenigen, die JAVA können.
Ich habe ein Anzeige-Problem, wenn ich im Backend eine Datei, z.B. eine "CSV" erzeuge und dann per Email verschicke, weil statt des entsprechenden Excel Icons wird ein graues Icon angezeigt.
Kann man das umgehen, indem man z.B. eine CSV-Vorlage als Attachment in einem Dokument ablegt und mittels "magischer" jAVA Funktionen diese Vorlage mit Daten befüllt und dann per Email versendet? Es geht mir nur um die Darstellung des Icons.
geppertb:
Hallo, wie wird die email verschickt?
Hast du schon einmal versucht die email an einen andere email Adresse zu versenden wie z.b. hotmail oder googlemail? Ich habe den verdacht das da nämlich deine angehängten Dateien gar nicht ankommen werden. Wenn du die email via Lotus Script verschickst muss der Anhang per Stream nochmal angehängt werden.
Ich hab mir dazu mal ne kleine funktion geschrieben:
--- Code: ---Function enviarEmailCCAttachment(sFrom As String, sSendTo As String, sSubject As String, sCC As String, sEstilo As String, sConteudo As String, ndContext As NotesDocument) As String
On Error Goto ErrorHandler
Dim ndMail As NotesDocument
Dim nmeParent As NotesMIMEEntity
Dim nmeChild As NotesMIMEEntity
Dim nmhHTML As NotesMimeHeader
Dim nsStream As NotesStream
Dim EmbedObj As NotesEmbeddedObject
Dim iCont As Integer
Dim Attach As NotesItem
Dim nmeArquivo As NotesMimeEntity
Dim nmaHeader As NotesMimeHeader
Dim sArquivo As String
Dim filecount As Integer
Session.convertMIME = False
Set ndMail = New NotesDocument(DbMail)
With ndMail
.Form = "Memo"
.From = sFrom
If Len(sCC) > 1 Then
.CopyTo = sCC
.Recipients = Split(sSendTo & ";" & sCC, ";")
Else
.Recipients = sSendTo
End If
.Subject = sSubject
.SendTo = sSendTo
.PostedDate = Now
Set nmeParent = .CreateMIMEEntity
Set nmhHTML = nmeParent.CreateHeader({MIME-Version})
Call nmhHTML.SetHeaderVal("1.0")
Set nmhHTML = nmeParent.CreateHeader("Content-Type")
Call nmhHTML.SetHeaderValAndParams({multipart/alternative;boundary="=NextPart_="})
Set nmeChild = nmeParent.createChildEntity()
Set nsStream = Session.createStream()
With nsStream
Call .WriteText("<html>", EOL_CR)
Call .WriteText("<head>", EOL_CR)
Call .WriteText(|<style type="text/css">| & sEstilo & |</style>|, EOL_CR)
Call .WriteText("</head>", EOL_CR)
Call .WriteText("<body>", EOL_CR)
Call .WriteText(sConteudo)
Call .WriteText("</body>", EOL_CR)
Call .WriteText("</html>", EOL_CR)
End With
Call nmeChild.setContentFromText(nsStream, {text/html;charset="iso-8859-1"}, ENC_NONE)
Call nsStream.close()
fileCount = 1
Forall item In ndContext.Items
If item.type = ATTACHMENT Then
Dim neoArquivo As NotesEmbeddedObject
sArquivo = ndContext.GetItemValue("AName_" & Cstr(fileCount))(0)
Set neoArquivo = ndContext.GetAttachment(sArquivo)
If Not neoArquivo Is Nothing Then
Set nsStream = Session.createStream()
Call neoArquivo.ExtractFile(ndParametros.DiretorioTemp(0) & "\" & sArquivo)
nsStream.Open(ndParametros.DiretorioTemp(0) & "\" & sArquivo)
Set nmeArquivo = nmeParent.createChildEntity()
Set nmaHeader = nmeArquivo.createHeader("Content-Type")
Call nmaHeader.setHeaderVal("multipart/mixed")
Set nmaHeader = nmeArquivo.createHeader("Content-Disposition")
Call nmaHeader.setHeaderVal("attachment; filename=" & sArquivo)
Set nmaHeader = nmeArquivo.createHeader("Content-ID")
Call nmaHeader.setHeaderVal(sArquivo)
Call nmeArquivo.setContentFromBytes(nsStream, "application/octet-stream", ENC_IDENTITY_BINARY)
Call nsStream.close()
Kill ndParametros.DiretorioTemp(0) & "\" & sArquivo
End If
fileCount = fileCount + 1
End If
End Forall
Call .Save(True, False)
End With
Exit Function
ErrorHandler:
enviarEmailCCAttachment = "(" & sCaminho & ") libUtil (enviarEmailHTML): " & Error$ & " (" & Erl & ")"
Exit Function
End Function
--- Ende Code ---
dirk_2909:
Das Problem liegt nicht direkt an Java.
Es liegt an Notes. Wenn der Dateipfad der Datei, die angehängt werden muss, ziemlich lang ist, dann zeigt Notes das graue Symbol an.
Ist der Dateipfad kurz, dann wird auch das richtige Symbol angezeigt.
OlTu:
ich versuch's nochmal:
Problem = Excel Attachment (.csv) mit Lotus Script im im Backend erzeugen + im Dokument speichern, danach das Dokument im Frontend öffnen -> Attachment Icon ist graues Rechteck
Lösung? = eine Excel Vorlage im Frontend im Dokument ablegen (hier wird das Icon richtig als Excel Icon dargestell) , dann mit JAVA direkt in die Vorlage Daten reinschreiben , danach das Dokument speichern, im Frontend öffnen -> Attachment Icon ist grünes X. <= ist das mit JAVA möglich?
Mit Script muss ich immer zuerst detachen, mit Daten füllen und attachen. Dabei verliert das Icon sein grünes X.
ascabg:
Hallo,
Fuer Dein geschildertes Scenario.
Nein.
Andreas
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln