473,594 Members | 2,770 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Outlook MSG file reading

Hello everyone,

I am attempting to extract some header information from typical Microsoft
Outlook MSG files in VB.NET. I am not after a complete message or
attachments that may be enclosed. I am particularly interested in the
Message ID field. I have examined MSG files in notepad and hex editors. I
can see that the Internet Headers are there and present. I can do a search
for Message-ID and locate it without any problems in notepad. The only
display issue I have seen so far is that each letter is separated by hex
character 00. Thus the Message-ID string would actually be, M e s s a g e -
I D.

I don't want to use Outlook automation. I have found it to be cumbersome
and slow. I also don't want to be reliant on an installation of Office.

Since the file is binary, I have attempted to use the System.IO.Strea mFile
object to read the file. However, I have
not been able successfully walk through the file and obtain any readable
text. I have played around with various encodings, such as ASCII and
Unicode. I think that MSG files are BASE64/Mime encoded though. Perhaps
that could be part of my trouble.

I have downloaded several example applications that mimic Notepad. However,
none of them have been able to read the encoding of MSG files. I have
gained a new level of appreciation for Notepad :). I wander what it is that
notepad uses to detect the file encoding and display it in such a readable
way.

Does anyone have any experience with reading Outlook data? Again, I am not
after pretty formatting, I just want to extract certain text fragments from
these binary files. Can someone point me in the right direction? I would
think that I just need to be able to read Byte Sream from the file with the
correct encoding and convert it to ASCII text. I have been totally
unsuccessful so far.

Thanks,
Dmitry
Apr 14 '06 #1
7 5036

"Dmitry Akselrod" <dm****@nospam. com> wrote in message
news:hK******** ************@co mcast.com...
Does anyone have any experience with reading Outlook data? Again, I am
not after pretty formatting, I just want to extract certain text fragments
from these binary files. Can someone point me in the right direction? I
would think that I just need to be able to read Byte Sream from the file
with the correct encoding and convert it to ASCII text. I have been
totally unsuccessful so far.


Outlook can be automated, just like Word, Excel etc. It's a bit cranky, but
I have done it. Have you tried adding a reference to it?

Apr 14 '06 #2
Hi,

That's my whole thing is that I don't want to automate Outlook. It's very
clunky. I need to be able to process millions of MSG files and Office
products (i.e. Access) suck with that many files.

Thank you though.

dmitry

"Homer J Simpson" <no****@nowhere .com> wrote in message
news:QkW%f.8941 3$%H.47856@clgr ps13...

"Dmitry Akselrod" <dm****@nospam. com> wrote in message
news:hK******** ************@co mcast.com...
Does anyone have any experience with reading Outlook data? Again, I am
not after pretty formatting, I just want to extract certain text
fragments from these binary files. Can someone point me in the right
direction? I would think that I just need to be able to read Byte Sream
from the file with the correct encoding and convert it to ASCII text. I
have been totally unsuccessful so far.


Outlook can be automated, just like Word, Excel etc. It's a bit cranky,
but I have done it. Have you tried adding a reference to it?

Apr 15 '06 #3

"Dmitry Akselrod" <dm****@nospam. com> wrote in message
news:27******** *************** *******@comcast .com...
That's my whole thing is that I don't want to automate Outlook. It's very
clunky. I need to be able to process millions of MSG files and Office
products (i.e. Access) suck with that many files.


In that case I'd start searching for third party tools. I assume that MSFT
aren't offering to divulge the details of the format.
Apr 15 '06 #4

Check out the Redemption COM object:

http://www.dimastr.com/redemption/

Dmitry Akselrod wrote:
Hello everyone,

I am attempting to extract some header information from typical Microsoft
Outlook MSG files in VB.NET. I am not after a complete message or
attachments that may be enclosed. I am particularly interested in the
Message ID field. I have examined MSG files in notepad and hex editors.
I
can see that the Internet Headers are there and present. I can do a
search
for Message-ID and locate it without any problems in notepad. The only
display issue I have seen so far is that each letter is separated by hex
character 00. Thus the Message-ID string would actually be, M e s s a g e
- I D.

I don't want to use Outlook automation. I have found it to be cumbersome
and slow. I also don't want to be reliant on an installation of Office.

Since the file is binary, I have attempted to use the System.IO.Strea mFile
object to read the file. However, I have
not been able successfully walk through the file and obtain any readable
text. I have played around with various encodings, such as ASCII and
Unicode. I think that MSG files are BASE64/Mime encoded though. Perhaps
that could be part of my trouble.

I have downloaded several example applications that mimic Notepad.
However,
none of them have been able to read the encoding of MSG files. I have
gained a new level of appreciation for Notepad :). I wander what it is
that notepad uses to detect the file encoding and display it in such a
readable way.

Does anyone have any experience with reading Outlook data? Again, I am
not after pretty formatting, I just want to extract certain text fragments
from
these binary files. Can someone point me in the right direction? I would
think that I just need to be able to read Byte Sream from the file with
the
correct encoding and convert it to ASCII text. I have been totally
unsuccessful so far.

Thanks,
Dmitry


--
Texeme Textcasting powers
http://www.you-read-it-here-first.com
Apr 15 '06 #5
No, MS is definitely not documenting their MSG format. I did find this
article:

http://www.msusenet.com/archive/topic.php/t-288764.html

A gentleman, named Eduardo A. Morcillo has developed some .NET classes that
wrap the Office OLE storage. They are pretty good so far. The classes are
here:

http://www.mvps.org/emorcillo/en/code/grl/storage.shtml

I have been able to take a couple of MSG files and obtain a list of streams
(properties) and their values. However, I am still missing the Internet
Headers. They must lie somewhere else in the file. All of this is quite
annoying, thanks to Microsoft.

The only known working API I have seen so far (used by many forensic
applications) is from Fookes software. These guys are great and their tools
are phenomenal, but the API is a little outside my price range.

Being able to obtain the Sender, Recipient, Subject, etc. is definitely a
plus, but I need the Message ID. I guess it's back to more research.

Dmitry
Basically, the MSG file format is a series of binary streams.
"Homer J Simpson" <no****@nowhere .com> wrote in message
news:UsX%f.8956 9$%H.59346@clgr ps13...

"Dmitry Akselrod" <dm****@nospam. com> wrote in message
news:27******** *************** *******@comcast .com...
That's my whole thing is that I don't want to automate Outlook. It's
very clunky. I need to be able to process millions of MSG files and
Office products (i.e. Access) suck with that many files.


In that case I'd start searching for third party tools. I assume that MSFT
aren't offering to divulge the details of the format.

Apr 15 '06 #6
Actually, never mind on the Internet Headers, they are there. They happen
to be stream, __substg1.0_007 D001F. I just had some issues with data
formatting and conversion. I think that my problem is solved, thanks to Mr.
Morcillo.

dmitry

"Dmitry Akselrod" <dm****@nospam. com> wrote in message
news:Sc******** *************** *******@comcast .com...
No, MS is definitely not documenting their MSG format. I did find this
article:

http://www.msusenet.com/archive/topic.php/t-288764.html

A gentleman, named Eduardo A. Morcillo has developed some .NET classes
that wrap the Office OLE storage. They are pretty good so far. The
classes are here:

http://www.mvps.org/emorcillo/en/code/grl/storage.shtml

I have been able to take a couple of MSG files and obtain a list of
streams (properties) and their values. However, I am still missing the
Internet Headers. They must lie somewhere else in the file. All of this
is quite annoying, thanks to Microsoft.

The only known working API I have seen so far (used by many forensic
applications) is from Fookes software. These guys are great and their
tools are phenomenal, but the API is a little outside my price range.

Being able to obtain the Sender, Recipient, Subject, etc. is definitely a
plus, but I need the Message ID. I guess it's back to more research.

Dmitry
Basically, the MSG file format is a series of binary streams.
"Homer J Simpson" <no****@nowhere .com> wrote in message
news:UsX%f.8956 9$%H.59346@clgr ps13...

"Dmitry Akselrod" <dm****@nospam. com> wrote in message
news:27******** *************** *******@comcast .com...
That's my whole thing is that I don't want to automate Outlook. It's
very clunky. I need to be able to process millions of MSG files and
Office products (i.e. Access) suck with that many files.


In that case I'd start searching for third party tools. I assume that
MSFT aren't offering to divulge the details of the format.


Apr 15 '06 #7
MSG Files:

Priasoft has several MSG related products. http://www.priasoft.com

In particular, they have a MSG file parsing library that gives
developers access to all the properties of a .msg file, without
outlook.

They also have a viewer product that looks very similar to outlook 2003
with regards to the User Interface. The viewer can view, search, print,
and export msg files.

Regards,
the MSG Guru, Eriq VanBibber

Apr 21 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
2121
by: pcouas | last post by:
Hi, Anyone know how reading Outlook or Outlook express contact File from Javamail ? It seems theses files are named .dbx and .vba Thanks Philippe
8
8795
by: John | last post by:
Hi I am using the latest redemption. I am using the below code in vb.net to send mail in html format. The problem is that text does not get sent as html and html tags appear as they are in the message like '<HTML>' etc. Any idea what I am doing wrong? Thanks Regards
23
25458
by: Graham F French | last post by:
Hello, I can read text files into my application, but I cannot read in msg files as they seem to be in a proprietry format. Is there anyway of converting it on the fly or is there an interpretation method? Thanks
2
12415
by: Karen Grube | last post by:
Hi! I hate to bother you all with this, but I don't know how best to approach a particular task. Here's the deal: Once a month I receive in my own inbox on my company's Outlook Exchange email server an email from one of our vendors to which is attached a text file (a comma-delimited data file containing the details of our monthly
3
1018
by: Qwert | last post by:
Hello, I would like to read the contents ( mail ) of my outlook program. I assume these messages are kept in the files "Inbox.dbx" and "microsoft.public.dotnet.languages.vb.dbx". Is there anyway to do this in VB.NET. Something like: MyMessageCollection = OpenDBX( "c:\Inbox.dbx") For Each Item in MyMessageCollection
0
2065
by: rcoutts | last post by:
I have a custom Access database that is a bulk mailing program for my small business to send emails to my customers (not spam!). Before sending mail, I export a folder in Outlook to an Access MDB file and then open the custom database which runs a VB subroutine that iterates through the exported MDB file and loads in new Senders of email. I'd like to automate this further by eliminating the need to open Outlook and export the folder...
6
8704
by: Dmitry Akselrod | last post by:
Hello everyone, I am attempting to extract some header information from typical Microsoft Outlook MSG files in VB.NET. I am not after a complete message or attachments that may be enclosed. I am particularly interested in the Message ID field. I have examined MSG files in notepad and hex editors. I can see that the Internet Headers are there and present. I can do a search for Message-ID and locate it without any problems in notepad....
3
2828
by: Siv | last post by:
Hi, A little while ago I wrote a small program that allowed the user to view products from a database. The database holds the details of the products which can be viewed via a form and additionally pictures of the product are stored in an images subfolder and the database holds the file name of the relevant picture. The user can then click a button to display the picture in a pop-up window and also another button to email the potential...
3
1709
by: tshad | last post by:
I have a program that is reading one of my mailboxes. It is polling the mailboxes ever 5 minutes to see if there is a message or not. Is this how Outlook does it (using Exchange as the server)? It doesn't seem to. When a message gets to Exchange, it seems to do some type of Push to Outlook as Outlook has it immediately. If so, ss there a way to make my program do that in VS. We are getting
0
7936
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
7874
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8241
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8366
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
7997
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
6646
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
5738
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5402
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
3853
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.