Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Onkel Domino am 12.05.06 - 21:11:26

Titel: Textdatei ohne Festplattenzugriff erstellen
Beitrag von: Onkel Domino am 12.05.06 - 21:11:26
Hallo,

ich möchte per Lotus Script eine Textdatei erstellen und diese dann per eMail verschicken. Allerdings möchte ich die Textdatei nicht speichern, sondern nur im Arbeitsspeicher erstellen und nach dem Versenden wieder löschen.

Der Funktion "Open" muss ein Dateiname übergeben werden. Somit scheidet die Option m.E. aus. Meine Idee ist nun ein (Textdatei-)Objekt zu erstellen (wie zum Beispiel bei einem Excel Export), und dieses Objekt später als Dateianhang an die zu versendende eMail zu hängen.

In Excel würde ich das Objekt mit der folgenden Zeile erzeugen:

Set excelApp = CreateObject("Excel.Application")

Wie kann ich nun eine Textdatei mit (am besten*) Notepad erstellen und "befüllen"?

*Der Agent soll auf den Clients ausgeführt werden. Es soll unter allen Windows Clients laufen (Win9x und WinXP) und Notepad.exe ist m.E. auf allen Windowsrechnern verfügbar.
Titel: Re: Textdatei ohne Festplattenzugriff erstellen
Beitrag von: koehlerbv am 12.05.06 - 21:30:13
Wenn Du das als Attachment versenden willst: No way, wenn das Teil nicht wirklich physisch vorliegt. Da hilft Dir auch kein Umweg über eine andere Applikation.

Bernhard
Titel: Re: Textdatei ohne Festplattenzugriff erstellen
Beitrag von: Onkel Domino am 12.05.06 - 21:47:17
Vielen Dank für die (wie immer) schnelle Hilfe :-)
Titel: Re: Textdatei ohne Festplattenzugriff erstellen
Beitrag von: heini_schwammerl am 13.05.06 - 11:24:53
Falls Du in Kürze vielleicht upgraden möchtest, einen Grund hättest Du jetzt.
Code
	
	Dim mbody As NotesMIMEEntity, mbodyChild As NotesMimeEntity
	Dim header As NotesMIMEHeader
	Dim stream As NotesStream
	
	session.ConvertMIME = False 
	Set stream = 	session.CreateStream
	
	Set maildoc = db.CreateDocument
	maildoc.Form = "Memo"
	
	Set mbody = maildoc.CreateMIMEEntity
	
	maildoc.Subject = "Superblubber"
	
	maildoc.SendTo 		= "textdatei@hhcs.de" 
	Set stream = session.CreateStream()
	
	Set mbodyChild = mbody.CreateChildEntity()
	Set header = mbodyChild.createHeader("Content-Type")
	Call header.setHeaderVal("multipart/mixed")
	
	Set header = mbodyChild.createHeader("Content-Disposition") 
	Call header.setHeaderValAndParams( |attachment; filename="blubb.txt"| )
	
	Set header = mbodyChild.createHeader("Content-ID") 
	Call header.setHeaderVal( |"blubb.txt"| )	
	
	Set stream = session.CreateStream()
	Call stream.WriteText("=========================================================="	, EOL_CRLF)
	
	Call stream.WriteText("REGISTRIERUNG DER ANWENDUNG", EOL_CRLF)
	Call stream.WriteText("=========================================================="	, EOL_CRLF)
	Call stream.WriteText("", EOL_CRLF)
	Call stream.WriteText("Bitte füllen Sie dieses Formular aus und senden es an:"		, EOL_CRLF)
	Call stream.WriteText("Reg. E-Mail            : "+doc.RegInternetAddress(0)		, EOL_CRLF)
	Call stream.WriteText("=========================================================="	, EOL_CRLF)
	Call mbodyChild.SetContentFromText(stream, "text/plain; charset=ISO-8859-15", ENC_IDENTITY_8BIT)
	
 	Call maildoc.Send (False)  
	session.ConvertMIME = True 
Aber das Stream Zeugsel gibt es im 5er Release wohl leider nicht.
Titel: Re: Textdatei ohne Festplattenzugriff erstellen
Beitrag von: Onkel Domino am 13.05.06 - 23:47:47
Das Thema ist doch noch nicht ganz erledigt. Es entpuppt sich kniffeliger als angenommen:

siehe http://atnotes.de/index.php?topic=30466.0