如何将 Outlook 邮件转换为维护双字节字符集的文本



我有一个代码可以将Outlook电子邮件转换为文本。除了从中日韩(中文/日文/韩文(语言收到的带有DBCS(双字节字符集(的电子邮件外,效果很好。

我拥有的代码如下:

Sub SaveAsTXT(myMail As Outlook.MailItem)
    Dim objItem As Object
    Dim myFolder As Folder
    ' Get sender email address
    senderEmAddress = myMail.Sender.GetExchangeUser().PrimarySmtpAddress
        If Not TypeName(myItem) = "Nothing" Then
               strname = myMail.Subject
               strdate = Format(myMail.ReceivedTime, "yymmddhhmmss")
               myMail.SaveAs "C:folder" & strdate & ".txt", olTXT
        End If
End Sub

我需要将摘录保留为文本。如果我手动将电子邮件复制到记事本中,如果我使用 UTF-8,CJK 字符将被正确复制并正确保存。

我可以在 VBA 代码中添加什么来正确捕获 CJK 字符?

您可以读取 MailItem.Body 属性(与所有 COM 字符串一样,它是 UT-16(,显式生成标头,将其与消息正文组合,然后自己保存文件。

如果使用 Redemption(我是它的作者(是一种选择,那么它的 SaveAs(..., olTxt) 版本没有这个问题:

set Session = CreateObject("Redemption.RDOSession")
set msg = Session.GetRDOObjectFromOutlookObject(myItem)
msg.SaveAs "c:temptest.txt", olTxt

最新更新