将电子邮件保存到本地文件夹 [英] Save email to a local folder

查看:251
本文介绍了将电子邮件保存到本地文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何保存电子邮件(msg)

此代码创建每日文件夹结构并保存电子邮件

This code creates a daily folder structure and saves email attachments but not the email itself.

Option Explicit
Public Sub saveAttachtoDisk(itm As Outlook.mailitem)
Dim objAtt As Outlook.Attachment
Dim SaveFolder As String

SaveFolder = "C:\Temp\" & Year(Date) & "\" & Month(Date) & "\" & Day(Date)

' Check for folder and create if needed
If Len(Dir("C:\Temp\" & Year(Date), vbDirectory)) = 0 Then
    MkDir "C:\Temp\" & Year(Date)
End If

If Len(Dir("C:\Temp\" & Year(Date) & "\" & Month(Date), _
                                         vbDirectory)) = 0 Then
    MkDir "C:\Temp\" & Year(Date) & "\" & Month(Date)
End If

If Len(Dir("C:\Temp\" & Year(Date) & "\" & Month(Date) & "\" & Day(Date), _
                                                     vbDirectory)) = 0 Then
    MkDir "C:\Temp\" & Year(Date) & "\" & Month(Date) & "\" & Day(Date)
End If

For Each objAtt In itm.Attachments
    objAtt.SaveAsFile SaveFolder & "\" & Format(Date, "yyyymmdd") & "_" & _
                                                         objAtt.DisplayName
Next

Set objAtt = Nothing
End Sub


推荐答案

尝试

    Dim FileName As String
        FileName = Format(Date, "yyyymmdd") & "_" & objAtt.DisplayName

    itm.SaveAs SaveFolder & "\" & FileName & ".msg", olMsg

也用空字符串替换无效字符,这里使用Regex

For Each objAtt In itm.Attachments
    Dim FileName As String
        FileName = Format(Date, "yyyymmdd") & "_" & objAtt.DisplayName

    objAtt.SaveAsFile SaveFolder & "\" & FileName

    Dim RegEx As Object
    Set RegEx = CreateObject("vbscript.regexp")
    With RegEx
        .Pattern = "[^\w\@-]"
        .IgnoreCase = True
        .Global = True
    End With

    FileName = RegEx.Replace(FileName, " ")
    itm.SaveAs SaveFolder & "\" & FileName & ".msg", olMsg
Next

现在用<$测试您的代码c $ c> Selection.item(1)

Public Sub Test_Rule()
    Dim olMsg As Outlook.mailitem

    Set olMsg = ActiveExplorer.Selection.Item(1)
    saveAttachtoDisk olMsg

End Sub

这篇关于将电子邮件保存到本地文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆