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