Autor Thema: *.eml Export - Import  (Gelesen 14966 mal)

Offline sgraf

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
*.eml Export - Import
« am: 08.02.11 - 13:30:08 »
Guten Tag,

seit der Lotus Notes 8.5.2 Version gibt es die Möglichkeit, Mails als EML abzuspeichern. Gibt es eine Möglichkeit diese EML Dateien auch wieder ordentlich in eine Notes Datenbank zu importieren? Das öffnen funktioniert ohne Probleme, dann wähle ich verschieben in einen Ordner aus. Dann liegt die Mail schonmal in der Notes Datenbank, nachdem ich aber einmal diese Mail angeschaut habe wird die automatisch in den Papierkorb verschoben. Wenn ich diese dann wiederherstelle tritt genau das gleiche szenario auf und es wird wieder gelöscht.
« Letzte Änderung: 08.02.11 - 13:32:34 von sgraf »

Offline Micha B

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.922
Re: *.eml Export - Import
« Antwort #1 am: 08.02.11 - 13:54:17 »
Es gibt von Hause aus keinen *.eml Import. Nur Export und Anzeige von *.eml Dateien. Ähnliches findest Du auch hier: http://www.ibm.com/support/docview.wss?uid=swg21455641

Offline beebodo

  • Frischling
  • *
  • Beiträge: 1
Re: *.eml Export - Import
« Antwort #2 am: 09.02.16 - 14:01:06 »
Scheinbar behandelt der Notes-Client geöffnete EML-Dateien aufgrund eines Feldes namens "EML" in dem angezeigten Dokument anders als andere Notes-interne Emails. Eine Möglichkeit geöffnete EML-Dateien zu importieren ist es daher, in der Standard-Email-Maske (Memo) eine Skript-Aktion zu erzeugen, die bei EML!>"1" verborgen wird, und aus dem geöffneten UI-Dokument ein neues Notes-Dokument erzeugt, das Feld "EML" entfernt und dass neue Dokument dann in einem Ordner ablegt, damit es auch gefunden werden kann.

Beispiel:
Code
Sub Click(Source As Button)
' Diese Aktion speichert eine geöffnete EML-Datei in dem Ordner "EML-Import" ab	
	
	Dim session As New notessession
	Dim db As NotesDatabase
	Dim ws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	Dim doc, newDoc As NotesDocument
	
	' geöffnetes EML-Dokument holen
	Set uidoc = ws.CurrentDocument
	Set doc = uidoc.Document
	
	' neues Dokument in DB anlegen und alle Felder des EML-Doks kopieren
	Set db = session.CurrentDatabase
	Set newDoc = db.CreateDocument
	Call doc.Copyallitems(newDoc)	
	
	' Das Feld "EML" entfernen. 
	' Dadurch wird das Dokument wie ein normales Notes-Dokument behandelt
	Call newDoc.removeItem("EML")	
	
	' Neues Dokument speichern und im Ordner ablegen
	Call newDoc.save(True, False)
	Call newDoc.putInFolder("EML-Import")
	
	Call uidoc.Close
	Messagebox "Das Dokument wurde im Ordner EML-Import gespeichert."
	
End Sub

Offline Stephan G.

  • Frischling
  • *
  • Beiträge: 5
  • Geschlecht: Männlich
Re: *.eml Export - Import
« Antwort #3 am: 01.08.16 - 16:20:31 »
Hat mir soeben geholfen! Danke!

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: *.eml Export - Import
« Antwort #4 am: 01.08.16 - 16:43:18 »
Was ich noch prüfen würde, ob nicht mit diesem Code irrtümlich das Mail von Mime nach Notes Rich Text konvertiert wird. Das kann bei aufwendiger formatierten Mails die Formatierung komplett zusammenhauen. Nur, dass ihr hier nicht in ein Problem läuft.
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline Sonnenaufgang

  • Aktives Mitglied
  • ***
  • Beiträge: 113
  • Geschlecht: Männlich
  • Daniel
Re: *.eml Export - Import
« Antwort #5 am: 02.02.17 - 09:37:31 »
Ich möchte den Anwendern ersparen E-Mail über "Datei - Speicher..." oder per drag and drop als eml-Datei zu speichern. Ich möchte ihnen dafür einen Agenten anbieten.
Kennt jemand von euch ein Coding, mit dem ich per Agent E-Mails als eml-Datei in einem bestimmten Ordner speichern kann.
Ist es überhaupt möglich?
Und immer wieder geht die Sonne auf!

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: *.eml Export - Import
« Antwort #6 am: 02.02.17 - 11:13:06 »
Ja kenne ich und ja es ist möglich, aber es ist kein ganz einfacher Weg.
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline Sonnenaufgang

  • Aktives Mitglied
  • ***
  • Beiträge: 113
  • Geschlecht: Männlich
  • Daniel
Re: *.eml Export - Import
« Antwort #7 am: 02.02.17 - 12:14:00 »
Sagst du mir den Weg?
Und immer wieder geht die Sonne auf!

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: *.eml Export - Import
« Antwort #8 am: 02.02.17 - 12:23:20 »
Ok mal ganz Quick and Dirty implementiert müsste es ca. so gehen

Code
// Wandelt eine Mail in ein eml File um.
	public static void exportEMLFile(Document mail, File outFile) throws Exception {
		Session ses = mail.getParentDatabase().getParent();
		mail.removeItem("$KeepPrivate");
		// Falls Mail kein Mime Mail dann konvertiere es. Die Konvertierung ist
		// ähnlich fehlerbehaftet, wie wenn man das Mail nach Extern sendet.
		if (mail.getMIMEEntity() == null)
			mail.convertToMIME(Document.CVT_RT_TO_HTML);
		MIMEEntity mE = null;
		MIMEEntity mChild = null;
		String contenttype = null;
		String headers = null;
		String content = null;
		String preamble = null;
		int encoding;
		FileWriter output = null;
		String noteid = mail.getNoteID();
		int index;

		// access document as mime parts
		mE = mail.getMIMEEntity("Body");
		output = new FileWriter(outFile);
		((lotus.domino.MIMEHeader) mE.getHeaderObjects().get(0)).getHeaderValAndParams();
		try {
			contenttype = mE.getContentType();
			headers = mE.getHeaders();
			encoding = mE.getEncoding();
			content = mE.getContentAsText();
			// Falls nur ein Binäranhang, dann encode in Base64
			if (content != null && content.trim().length() > 0 && encoding == MIMEEntity.ENC_IDENTITY_BINARY) {
				mE.encodeContent(MIMEEntity.ENC_BASE64);
				headers = mE.getHeaders(); // get again, because
											// changed
				content = mE.getContentAsText();
			}
			// message envelope. If no MIME-version header, add one
			index = headers.indexOf("MIME-Version:");
			if (index < 0)
				output.write("MIME-Version: 1.0\n");
			output.write(headers);
			output.write("\n");
			if (content != null && content.trim().length() > 0) {
				output.write("\n");
				output.write(content);
				output.write("\n");
			}

			// For multipart, examine each child entity,
			// re-code to base64 if necessary
			if (contenttype.toLowerCase().startsWith("multipart")) {
				processMultipart(mE, output);
			} // end multipart

			// end of main envelope
			output.write(mE.getBoundaryEnd());
		} finally {
			if (output != null)
				output.close();
		}
	}
private static void processMultipart(MIMEEntity mE, FileWriter output) throws NotesException, IOException {
		MIMEEntity mChild;
		String headers;
		String content;
		String preamble;
		int encoding;
		preamble = mE.getPreamble();
		mChild = mE.getFirstChildEntity();
		while (mChild != null) {
			headers = mChild.getHeaders();
			encoding = mChild.getEncoding();

			// convert binary parts to base-64
			if (encoding == MIMEEntity.ENC_IDENTITY_BINARY) {
				mChild.encodeContent(MIMEEntity.ENC_BASE64);
				headers = mChild.getHeaders(); // get again, because
												// changed
			}

			preamble = mChild.getPreamble();
			content = mChild.getBoundaryStart();
			output.write(content);
			if (!content.endsWith("\n"))
				output.write("\n");
			output.write(headers);
			output.write("\n");
			output.write("\n");

			content = mChild.getContentAsText();
			if (content != null && content.length() > 0)
				output.write(content);
			if (mChild.getContentType().toLowerCase().startsWith("multipart"))
				processMultipart(mChild, output);
			output.write(mChild.getBoundaryEnd());
			mChild = mChild.getNextSibling();
		}
	}
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline Sonnenaufgang

  • Aktives Mitglied
  • ***
  • Beiträge: 113
  • Geschlecht: Männlich
  • Daniel
Re: *.eml Export - Import
« Antwort #9 am: 02.02.17 - 12:31:12 »
Vielen Dank.
Ich probiere es mal aus.
Und immer wieder geht die Sonne auf!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz