Autor Thema: Attachment im Backend mit JAVA anhängen um Icon beizubehalten?  (Gelesen 2685 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