Autor Thema: Attachment im Backend mit JAVA anhängen um Icon beizubehalten?  (Gelesen 2855 mal)

Offline OlTu

  • Junior Mitglied
  • **
  • Beiträge: 73
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.

Offline geppertb

  • Frischling
  • *
  • Beiträge: 27
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

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
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.
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline OlTu

  • Junior Mitglied
  • **
  • Beiträge: 73
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.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Hallo,

Fuer Dein geschildertes Scenario.
Nein.


Andreas

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Wie lang ist denn dein Dateipfad der Datei, die du anhängst?? 
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline OlTu

  • Junior Mitglied
  • **
  • Beiträge: 73
der Pfad = C:\TEMP\vorlage.csv

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Das hängt nicht von der Pfadlänge ab, sondern ob es im Front- oder Backend passiert. Backend = Standard-Icon, Frontend = passendes Icon (so dem Frontend bekannt).

Bernhard

Offline OlTu

  • Junior Mitglied
  • **
  • Beiträge: 73
ja, das ist der Punkt, Bernhard, und ich glaube, ich habe inzwischen eine Lösung für mein Problem gefunden - DXL  ;)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz