Solved

I need to extract the contents of a mailbox to a CSV file (Dates,Subject,From, To, Body)

Posted on 2008-10-24
4
287 Views
Last Modified: 2011-10-03
My boss requires the ability to export the contents of a mailbox to a CSV file, I have tried using Outlook, but it does not include dates and times in the export.
I have tried using get external data with access and the infromation level is correct, but there is only 65000 characters a row.
Right clicking and saving the email gives the right data, but not in a usable format
Could anyone suggest  a way of doing this?
Thanks
Mike
0
Comment
Question by:mikesjn
  • 2
  • 2
4 Comments
 
LVL 1

Expert Comment

by:isdi
Comment Utility
Hello Mike,

My suggestion is to write a script using VBS or an application using some language that can instantiate COM objects to extract the data as required.
0
 

Author Comment

by:mikesjn
Comment Utility
Have you any code samples, I can do very basic VBS, but I am lost after that. Someone suggested PERL, but they may as well have said Latin.
Thanks
Mike
0
 
LVL 1

Accepted Solution

by:
isdi earned 500 total points
Comment Utility
Hello Mike,

Save the code snippet with the '.vbs' extension. Execute it from the command line. You should first be asked to allow the script access to your email. Then you should see five message boxes showing some of the email.

This should get you started.
You'll also have to learn how to write data to a file. Search for 'File System Object'.  Search Google and msdn.microsoft.com

I don't know this site but this page talks briefly about the process:
http://www.activecallcenter.com/manual/306.htm

Here is a google search that should help:
http://www.google.com/search?num=100&hl=en&safe=off&q=vbs+Outlook+Email+Read&btnG=Search

In essence there are several things you will have to learn about *or* you will have to hire someone that knows about them.

All the above is just enough to get you started, but if you can write basic VBS then it should not be too much of an issue.


-isdi-
Dim oOutlook

Dim oNamespace

Dim oInbox

Dim oItem

Dim sTemp1 

Dim iLimit
 

Const olFolderInbox = 6
 

	SET oOutlook = CreateObject("Outlook.application")

	SET oNamespace = oOutlook.GetNameSpace("MAPI")

	SET oInbox = oNamespace.GetDefaultFolder(olFolderInbox)
 
 

	For Each oItem in oInbox.Items

		If iLimit = 5 Then Exit For

			sTemp1 = "From:  " & oItem.SenderName & vbCrLf

			sTemp1 = sTemp1 & oItem.Subject & vbCrLf

			sTemp1 = sTemp1 & "Attachment Count = " & oItem.Attachments.Count & vbCrLf & vbCrLf 

			sTemp1 = sTemp1 & oItem.Body

			Msgbox sTemp1

			iLimit = iLimit + 1

	Next
 

	SET oInbox = Nothing

	SET oNamespace = Nothing

	SET oOutlook = Nothing

Open in new window

0
 

Author Closing Comment

by:mikesjn
Comment Utility
Thanks for that, great help. Got it working.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

We are happy to announce a brand new addition to our line of acclaimed email signature management products – CodeTwo Email Signatures for Office 365.
Disabling the Directory Sync Service Account in Office 365 will stop directory synchronization from working.
Viewers will learn how to use the Hootsuite Dashboard.
The viewer will learn how to successfully create a multiboot device using the SARDU utility on Windows 7. Start the SARDU utility: Change the image directory to wherever you store your ISOs, this will prevent you from having 2 copies of an ISO wit…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now