OUTLOOK 在保存到磁盘时重命名重复的邮件主题

OUTLOOK 在保存到磁盘时重命名重复的邮件主题

我有一个从项目文件夹收集文件进行处理的过程。

用户从 Outlook 将电子邮件保存到此项目文件夹。(Win10 上的 Office Outlook365)在 Outlook 中,您可以抓取一组电子邮件并将其发送到文件资源管理器窗口以“另存为”。如果文件夹中已存在任何文件,Windows 会提供以下选项:

  1. “复制并替换”
  2. “不可抄袭”。

我想复制、保留两者,并使用 (1) 或 (2) 扩展名重命名文件名。filename.msg filename(1).msg

有人对如何实现这一点有什么建议吗?并且让非技术用户更容易使用?

我认为可能有一个注册表设置允许默认重命名复制的文件或类似的东西。

针对此问题建议的其他解决方案是保存到临时文件夹,然后从临时文件夹复制到项目文件夹,然后您可以选择覆盖/重命名,但这是一种冗长且可能造成灾难性的方法,依赖于您每次单击多个复选框以免覆盖您保存的文件。

答案1

根据我的经验,Outlook 中可能没有可以直接设置的选项。作为解决方法,建议使用任何 vba 脚本。根据我的测试,这个脚本可以将收到的时间和主题保存在本地:

Option Explicit
Public Sub SaveMessageAsMsg()
  Dim oMail As Outlook.MailItem
  Dim objItem As Object
  Dim sPath As String
  Dim dtDate As Date
  Dim sName As String
  Dim enviro As String
 
    enviro = CStr(Environ("USERPROFILE"))
   For Each objItem In ActiveExplorer.Selection
   If objItem.MessageClass = "IPM.Note" Then
    Set oMail = objItem
   
  sName = oMail.Subject
  ReplaceCharsForFileName sName, "-"
 
  dtDate = oMail.ReceivedTime
  sName = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, _
    vbUseSystem) & Format(dtDate, "-hhnnss", _
    vbUseSystemDayOfWeek, vbUseSystem) & "-" & sName & ".msg"
     
    sPath = enviro & "\Documents\"
  Debug.Print sPath & sName
  oMail.SaveAs sPath & sName, olMSG
  
  End If
  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, ":", 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

参考自此篇文章:将选定的电子邮件消息保存为 .msg 文件

相关内容