MailItem.SaveAs Method

Outlook Developer Reference

Saves the Microsoft Outlook item to the specified path and in the format of the specified file type. If the file type is not specified, the MSG format (.msg) is used.

Syntax

expression.SaveAs(Path, Type)

expression   A variable that represents a MailItem object.

Parameters

Name Required/Optional Data Type Description
Path Required String The path in which to save the item.
Type Optional Variant The file type to save. Can be one of the following OlSaveAsType constants: olHTML, olMSG, olRTF, olTemplate, olDoc, olTXT, olVCal, olVCard, olICal, or olMSGUnicode.

Remarks

Also note that even though olDoc is a valid OlSaveAsType constant, messages in HTML format cannot be saved in Document format, and the olDoc constant works only if Microsoft Word is set up as the default email editor.

Example

This Visual Basic for Applications (VBA) example uses the SaveAs method to save the currently open item as a text file in the Documents folder, using the subject as the file name. To run this example, make sure a mail item in plain text format is open in the active window.

Visual Basic for Applications
  Sub SaveAsTXT()
    Dim myItem As Outlook.Inspector
    Dim objItem As Object
Set myItem = Application.ActiveInspector
If Not TypeName(myItem) = "Nothing" Then
    Set objItem = myItem.CurrentItem
    strname = objItem.Subject
    'Prompt the user for confirmation
    Dim strPrompt As String
    strPrompt = "Are you sure you want to save the item? " & _
    "If a file with the same name already exists, " & _
    "it will be overwritten with this copy of the file."	
    If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then
        objItem.<strong>SaveAs</strong> Environ("HOMEPATH") &amp; "\My Documents\" &amp;  strname &amp; ".txt", olTXT
    End If
Else
    MsgBox "There is no current active inspector."
End If

End Sub

This Visual Basic for Applications example shows you how to create a template using the SaveAs method.

Visual Basic for Applications
  Sub CreateTemplate()
    Dim MyItem As Outlook.MailItem
	
    Set MyItem = Application.CreateItem(olMailItem)
    MyItem.Subject = "Status Report"
    MyItem.To = "Dan Wilson"
    MyItem.Display
    MyItem.SaveAs Environ("HOMEPATH") & "\My Documents\statusrep.oft", OlSaveAsType.olTemplate
End Sub

See Also