Save Email in MSG format

G

Guest

I have Outlook 2003. I want to be able to write a macro to do a File, Save
As, then save the email in Outlook Message Format (e.g. .MSG) to a particular
location (e.g. W:\EMAIL\).

Can anyone help me?

Thanks!
 
G

Geoff

I'm using Outlook 2002, but the following advice will probably work for
Outlook 2003. (You'll have to check.)

Have you tried the SaveAs method of the mail item object?
The SaveAs method takes the optional "Type" argument. You can specify the
type as "olMsg".

Here's an example.

Dim objOL As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objFLDR As Outlook.MAPIFolder
Dim objSUBFLDR As Outlook.MAPIFolder
Dim objMI As Outlook.MailItem

Set objOL = New Outlook.Application
Set objNS = objOL.GetNamespace("MAPI")
Set objFLDR = objNS.Folders("Personal Folders")
Set objSUBFLDR = objFLDR.Folders("Inbox")
If objSUBFLDR.Items.Count > 0 Then
Set objMI = objSUBFLDR.Items(1)
objMI.SaveAs "C:\Temp.msg", olMSG
End If

Set objMI = Nothing
Set objSUBFLDR = Nothing
Set objFLDR = Nothing
Set objNS = Nothing
Set objOL = Nothing

The problem with the above code is that Outlook security will prompt you
when the macro runs, saying that a program is trying to access Outlook data.
You will have to respond manually saying Yes (that's OK) or No. If this
intervention by security is a problem for you, then you would need to write
code using the Redemption library (if that's still usable in Outlook 2003).

Geoff
 
M

Michael Bauer

Am Thu, 8 Jun 2006 21:08:18 +0100 schrieb Geoff:

Yes, the Redemption is also very usable in OL 2003 for a lot if things.

In OL 2003 you can avoid security prompts simply by using the instrinsic
Application object.
 
G

Geoff

Michael,
Thanks for the tip.
Geoff

Michael Bauer said:
Am Thu, 8 Jun 2006 21:08:18 +0100 schrieb Geoff:

Yes, the Redemption is also very usable in OL 2003 for a lot if things.

In OL 2003 you can avoid security prompts simply by using the instrinsic
Application object.
 
G

Guest

Thank you for your response. I really appreciate it.

I'm new at this and get the run-time error "The operation failed. An object
could not be found" on line Set objFLDR = objNS.Folders("Personal Folders")

I don't know enough to correct this.

Do you know why I'm getting it?

Thanks,
Leigh
 
M

Michael Bauer

Am Mon, 12 Jun 2006 08:08:02 -0700 schrieb LDMueller:

That means, there´s no Folder in Outlook called "Personal Folders". If you
run a German version e.g. that folder is called "Persönliche Ordner".
 
G

Geoff

Here's a revised example:

Dim objOL As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objFLDR As Outlook.MAPIFolder
Dim objMI As Outlook.MailItem
Dim objATCH As Outlook.Attachment

Set objOL = New Outlook.Application
Set objNS = objOL.GetNamespace("MAPI")
' You need to point to the folder you want
' to save messages from on the next line:
Set objFLDR = objNS.GetDefaultFolder(olFolderInbox)
If objFLDR.Items.Count > 0 Then
Set objMI = objFLDR.Items(1)
objMI.SaveAs "C:\Temp.msg", olMSG
End If

Set objMI = Nothing
Set objFLDR = Nothing
Set objNS = Nothing
Set objOL = Nothing

Geoff
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top