2011-01-08 105 views
1

我使用此脚本从Outlook导出电子邮件。我的问题是如何在不使用html格式的情况下导出电子邮件的正文?从Outlook以编程方式导出电子邮件使用vba

Sub SaveItemsToExcel() 

    On Error GoTo ErrorHandlerExit 

    Dim oNameSpace As Outlook.NameSpace 
    Dim oFolder As Outlook.MAPIFolder 

    Dim objFS As Scripting.FileSystemObject 
    Dim objOutputFile As Scripting.TextStream 

    Set objFS = New Scripting.FileSystemObject 
    Set objOutputFile = objFS.OpenTextFile("C:\Temp\Export.csv", ForWriting, True) 
    Set oNameSpace = Application.GetNamespace("MAPI") 
    Set oFolder = oNameSpace.PickFolder 

    If oFolder Is Nothing Then 
     GoTo ErrorHandlerExit 
    End If 

    If oFolder.DefaultItemType <> olMailItem Then 
     MsgBox "Folder does not contain mail messages" 
     GoTo ErrorHandlerExit 
    End If 

    objOutputFile.WriteLine "From,Subject,Recived, Body" 

    ProcessFolderItems oFolder, objOutputFile 

    objOutputFile.Close 

    Set oFolder = Nothing 
    Set oNameSpace = Nothing 
    Set objOutputFile = Nothing 
    Set objFS = Nothing 

ErrorHandlerExit: 
    Exit Sub 


End Sub 

Sub ProcessFolderItems(oParentFolder As Outlook.MAPIFolder, ByRef objOutputFile As Scripting.TextStream) 
    Dim oCount As Integer 
    Dim oMail As Outlook.MailItem 
    Dim oFolder As Outlook.MAPIFolder 
    oCount = oParentFolder.Items.Count 

    For Each oMail In oParentFolder.Items 
     If oMail.Class = olMail Then 

     objOutputFile.WriteLine oMail.SenderEmailAddress & "," & Replace(oMail.Subject, ",", "") & "," & oMail.ReceivedTime 

     End If 
    Next oMail 

    Set oMail = Nothing 
    If (oParentFolder.Folders.Count > 0) Then 
      For Each oFolder In oParentFolder.Folders 
       ProcessFolderItems oFolder, objOutputFile 
      Next 
    End If 


End Sub 

回答

0

尝试阅读Body属性之前设置BodyFormatolFormatPlain

相关问题