Domino 9 und frühere Versionen > ND8: Entwicklung

Attachment im Backend mit JAVA anhängen um Icon beizubehalten?

(1/2) > >>

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