Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   IndyMessage.SaveToFile in Outlook öffnen (https://www.delphipraxis.net/55608-indymessage-savetofile-outlook-oeffnen.html)

Jelly 24. Okt 2005 10:05


IndyMessage.SaveToFile in Outlook öffnen
 
Und ich dachte, es könnte so einfach sein. :wall:

Ich erstelle Mails mit den Indy 10 Komponenten, mit HTML und Text Parts, Logos und Attachments. Klappt wunderbar, und das Speichern der gesamten Mail klappt soweit auch:
Delphi-Quellcode:
IndyMessage.SaveToFile('Testmail.msg') ;
Ich benutze TheBat! als Mailclient, und ein Doppelklick auf die Datei öffnet mit auch wunderbar die Mail, so wie ich es haben wollte.

Allerdings programmiere ich hier in der Firma, und dort läuft Outlook 2003 als Mailclient, und dieses Ding kriegt diese Rohmails nicht geöffnet. Microsoft verwendet da mal wieder sein eigenes Format.

Jetzt habe ich nach Tools im Internet gesucht, um diese .msg Dateien zu konvertieren, damit Outlook die auch lesen kann, aber irgendwie nichts Passendes gefunden. Entweder fehlt die Möglichkeit, das per Befehl direkt konvertieren zu lassen, oder die Programme dienen dazu, gleich ganze Mailboxen zu konvertieren, nicht jedoch einzelne .msg Files..

Deshalb die Frage, wer kennt da ein geeignetes Tool. Darf auch ruhig was kosten, solange es im 2-stelligen Euro Bereich ist.

marabu 24. Okt 2005 12:50

Re: IndyMessage.SaveToFile in Outlook öffnen
 
Hallo Tom.

Zitat:

Zitat von Jelly
Microsoft verwendet da mal wieder sein eigenes Format.

Eigentlich nicht. Wenn dein mail client seine Nachrichten auch im RFC822 Format speichert, dann sollte das Öffnen mit Outlook einfach sein. Ich kann es leider nicht testen, aber du könntest es so verifizieren:

Code:
OUTLOOK /eml:test.msg
Wenn es funktioniert, dann trage als Standard-Wert für HKCR\.msg Microsoft Internet Mail Message ein (quick & dirty) und versuche den Doppelklick auf einen msg-file. Wenn es nicht funktioniert, dann schau mal unter HKCR\Microsoft Internet Mail Message\shell\open\command nach, was der von Outlook verwendete command line switch ist.

Grüße vom marabu

Jelly 24. Okt 2005 13:46

Re: IndyMessage.SaveToFile in Outlook öffnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Dein Commandlinewitch stimmt schon, alternativ kann man auch /f verwenden. Das klappt dann auch bei .msg die man aus Outlook raus in ein Verzeichnis zieht. Wenn ich mir diese .msg Datei jedoch im Texteditor anschaue, hat das aber nichts mehr mit dem zu tun, wie Indy die Mail speichert, und wie sie eigentlich auch zum SMTP Server gehen muss. Ich hab mal 2 .msg Dateien angehängt. Test.msg ist das, was Indy mir speichert, und unbenannt.msg ist das, was Outlook erwartet, damit ich die Datei öffnen kann. Beide Mails haben zwar nun unterschiedlichen Inhalt, aber am Format erkennt man die Unterschiede.

woki 24. Okt 2005 14:19

Re: IndyMessage.SaveToFile in Outlook öffnen
 
Hallo,

nur so als Hinweis am Rande, ich habe vor kurzem mit Indy9 und Outlook 2000 gearbeitet, und hatte keine Probleme mit dem Austausch der gespeicherten Mails in beide Richtungen.
Nur beim Einlesen und erneutem Versenden von empfangenen Html-Mails muss man Hand anlegen.

Woki

Jelly 24. Okt 2005 14:28

Re: IndyMessage.SaveToFile in Outlook öffnen
 
Ich muss mich korrigieren. Es handelt sich hier noch um ein Projekt in Delphi 4, und dort benutze ich auch noch Indy 8 oder 9.

marabu 24. Okt 2005 14:37

Re: IndyMessage.SaveToFile in Outlook öffnen
 
@Jelly: Dein Eingangsproblem war doch "Öffnen einer RFC822-konformen Nachricht mit Outlook aus dem Dateisystem" - oder? Das scheint zu funktionieren, wenn ich zwischen den Zeilen deines postings lese.

Jetzt geht es um den Rückweg - speichern aus Outlook und öffnen mit einem RFC822-kompatiblen Werkeug, oder?

Die in deinem Archiv verpackte unbenannt.msg hast du per drag & drop aus Outlook im Dateisystem abgelegt und dabei wurde ein MS-spezifisches Binärformat erzeugt. Wenn du eine Nachricht in Outlook geöffnet hast und "Speichern unter..." verwendest, dann solltest du das RFC822-Format (evtl unter einem anderen Namen) auswählen können. Und das beim drag & drop verwendete Format lässt sich eventuell über eine Einstellung festlegen. Leider habe ich die nächsten 10 Tage keinen Zugang zu Outlook.

marabu

Jelly 24. Okt 2005 15:04

Re: IndyMessage.SaveToFile in Outlook öffnen
 
Ich hab mich glaub ich unglücklich kompliziert ausgedrückt.

Sinn der Sache ist es, die aus Indy heraus erstellten Mails auf einem Fileserver zu archivieren. Das klappt soweit mit IndyMesage.SaveToFile. Die erzeugt Datei scheint dieser RFC822 Norm zu gehorchen (in meinem Anhang vorhin war da test.msg).

Aber egal was ich jetzt mache, mit Outlook krieg ich diese Datei nicht geöffnet. Es geht mir nicht ums Exportieren aus Outlook raus, sondern lediglich darum, die von Indy erzeugt Messagedatei in Outlook zu öffnen.

Um eine MSG Datei mit Outlook zu öffnen, sollte so gehen:
Code:
outlook.exe /f test.msg
oder über
Code:
outlook.exe /eml:test.msg
aber beides versagt eben bei dieser Indy erzeugten Datei.

Outlook erwartet ein Format, wa dem unbenannt.msg aus obigem Beitra entsprechen muss.

Aber aus woki's Beitrag entnehme ich, dass es bei ihm ja zu klappen scheint. Jetzt frage ich mich, obs irgendwo ne Einstellung in Outlook 2003 gibt, um das Format anzugeben, oder ob es an einer unterschiedlichen Outlook Version liegt.

PS:
Zitat:

Zitat von marabu
Leider habe ich die nächsten 10 Tage keinen Zugang zu Outlook.

Sei froh :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz