Outlook 规则将电子邮件保存为文本
Posted
技术标签:
【中文标题】Outlook 规则将电子邮件保存为文本【英文标题】:Outlook Rule Save email to text 【发布时间】:2015-02-18 13:39:42 【问题描述】:我在使用脚本自动将电子邮件正文导出到文本文件时遇到问题。 我管理了一个脚本,它将文本保存到宏上的文件中,但这不适用于我需要的规则。
我目前的代码如下:
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】:其实我自己解决了。
我不认为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
【讨论】:
干得好,整理好自己+1。您也可以接受自己的答案或等待另一种方法来获得您想要的。见accepting answers。 感谢您发布此信息。经过一些小的修改,它也对我有用。 您是否注意到您没有使用您在此处分配的 strdate?以上是关于Outlook 规则将电子邮件保存为文本的主要内容,如果未能解决你的问题,请参考以下文章
Outlook2010 没有Exchange Server,怎么自动回复邮件?