Outlook规则将电子邮件保存到文本

时间:2014-12-19 15:30:34

标签: vba email outlook

我无法使用脚本自动将电子邮件正文导出到文本文件中。 我已经管理了一个脚本,将文本保存到宏上的文件中,但这不适用于我需要的规则。

我目前的代码如下:

Sub SaveAsTXT()
 Dim myItem As Outlook.Inspector
 Dim objItem As Object
 Dim myFolder As Folder



 Set myItem = Application.ActiveInspector
 If Not TypeName(myItem) = "Nothing" Then

        Set myNamespace = Application.GetNamespace("MAPI")
        Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)

 Set objItem = myItem.CurrentItem
 strname = objItem.Subject
 strdate = Format(objItem.ReceivedTime, " yyyy mm dd")
 objItem.SaveAs "c:\users\philip\documents\" & strname & strdate & ".txt", olTXT
    End If

End Sub

道歉,如果它看起来有点乱,我已经无数次编辑它试图让它发挥作用。

当我在打开的电子邮件中并将其作为宏运行时,这是正确运行的代码,但在作为规则运行时它将无法正常运行 我已经尝试修改Sub SaveAsTXT(Item as Outlook.Mailitem),但这似乎也不起作用

所以基本上问题是如何确保代码在作为规则运行时选择电子邮件(在没有引号的情况下始终标题为“Rotas”)?

信息:使用Office 2010,我不是一个非常好的编码器。

1 个答案:

答案 0 :(得分:6)

实际上我设法自己解决了。

我不认为item as Outlook.Mailitem元素实际上是规则选择的内容。所以我应用item作为对象,而不是objItem

找到下面的成功(和清理)代码:

Sub SaveAsTXT(myMail As Outlook.MailItem)

 Dim objItem As Object
 Dim myFolder As Folder


 If Not TypeName(myitem) = "Nothing" Then

        If myMail.Subject = "Rotas" Then

 strname = myMail.Subject
 strdate = Format(myMail.ReceivedTime, " yyyy mm dd")
 myMail.SaveAs "c:\users\philip\documents\" & strname & ".txt", olTXT
    End If


 End If

End Sub