我正在尝试创建一个宏/脚本,它将获取我选择的Outlook邮件,并将它们保存为.txt文件。
我实际上是通过选择1个邮件来正确保存它,但问题是格式化了所有搞砸了,并开始切换单词 - 继承我使用过的代码:
Sub SaveSelectedMailAsTxtFile()
Const OLTXT = 0
Dim currentExplorer As Explorer
Dim Selection As Selection
Dim oMail As Outlook.MailItem
Dim obj As Object
Dim sPath As String
Dim dtDate As Date
Dim sName As String
Set currentExplorer = Application.ActiveExplorer
Set Selection = currentExplorer.Selection
For Each obj In Selection
Set oMail = obj
sName = oMail.Subject
oMail.SaveAs "C:\path\file.txt", OLTXT
Next
End Sub
Private Sub ReplaceCharsForFileName(sName As String, _
sChr As String _
)
sName = Replace(sName, "/", sChr)
sName = Replace(sName, "\", sChr)
sName = Replace(sName, ":", sChr)
sName = Replace(sName, "?", sChr)
sName = Replace(sName, Chr(34), sChr)
sName = Replace(sName, "<", sChr)
sName = Replace(sName, ">", sChr)
sName = Replace(sName, "|", sChr)
End Sub
2个问题 -
1我是否无法选择多个邮件,并将其保存为1个文本文件。
2邮件的格式化很多。例如,我得到了这个产品名称:
"Dansk kolloid sølv 1 liter, fremstillet i København"
-
从outlook邮件粘贴的副本。
在我从脚本中获取的文本文件中,它的打印方式如下:
达 NSK KOLL OID SOL v 1 升 , FRE MST illet 一世 KO 本 HAV Ñ
这使得它很难使用:S有什么建议吗?任何帮助都会受到赞赏:)
奖励信息:我尝试过另外一项工作,我选择了多封电子邮件,只使用outlook的另存为功能。现在,如果我选择包含纯文本的邮件,我会遇到同样的问题 - 但是,如果我选择相同的订单电子邮件,再加上来自Humble Bundle或Twitch的电子邮件(我认为它们是基于HTML的电子邮件?不确定),以及保存这些电子邮件,格式在基于文本的电子邮件中不受影响,因此可用。
答案 0 :(得分:0)
Outlook不会在单个文件中保存多个项目。如果您愿意,可以合并多个文件。
您在Outlook中看到的Body属性是什么?您可以在OutlookSpy中检查其值 - 选择消息,单击Item属性,选择Body属性。