保存为HTML而不创建.xml文件的子文件夹
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保存为HTML而不创建.xml文件的子文件夹相关的知识,希望对你有一定的参考价值。
我试图将所有传入的电子邮件另存为.html文件,但它会为每封电子邮件创建一个子文件夹。
这是我的代码:
Public Sub ShowMessage(Item As Outlook.MailItem)
Dim path As String
path = "C:\Users\me\Desktop\"
Item.SaveAs path & Item.SenderName & ".htm", olHTML
End Sub
它给了我类似的东西:“joe.htm”和一个名为“joe_files”的文件夹,其中包含“colorschememapping.xml”和“filelist.xml”以及“themedata.thmx”
有没有办法保存没有这些文件?
在Word中,我通过保存为Filtered HTML解决了这个问题,但Outlook似乎无法实现。
这是我在MS Word中的代码:
ActiveDocument.SaveAs FileName:=Path, FileFormat:=wdFormatFilteredHTML
或者是否可以使用MailItem.BodyFormat编辑项目的正文然后将其另存为html?这样,当它保存为HTML时,我们将不会拥有Outlook的所有自动编码。 (https://msdn.microsoft.com/en-us/library/office/ff869979.aspx)
尝试使用olMHTML(10)格式。
您也可以简单地读取HTMLBody属性并将其保存为文件 - 问题可能是Unicode字符 - HTMLBody属性是UTF-16,HTML文件必须是8字节,因此您需要根据值的大小适当地转换它。 PR_INTERNET_CPID(可能不一定与HTML正文中的代码页匹配)。
如果使用Redemption是一个选项,它支持olHTMLEmbeddedImages格式,它会创建一个HTML文件,其中包含<img>
标记内的图像数据。 Outlook(使用Word来呈现HTML消息)不喜欢这样,但IE和Firefox都应该没问题。它嵌入已附加到消息的图像以及引用的图像(已下载):
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set Item = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID)
Item.SaveAs "c:\temp\HTMLWithImages.html", 1033 ' olHTMLEmbeddedImages
没关系......我解决了。通过重新阅读我的问题,我才意识到答案就在那里。
item.SaveAs path & Item.SenderName & ".htm", olTxt
不知何故,微软的支持页面没有提到Filtered HTML可以在他们的代码上运行,但实际上它确实如此。
https://msdn.microsoft.com/en-us/library/office/ff868727.aspx?
以上是关于保存为HTML而不创建.xml文件的子文件夹的主要内容,如果未能解决你的问题,请参考以下文章
使用 HTML5 + Javascript 将数据字符串保存为文件而不使用 URI [重复]
在 Spark 的嵌套 XML 中为来自父数据框的子数据框添加额外的列