【问题标题】:Save email to Windows folder with subject as file name以主题作为文件名将电子邮件保存到 Windows 文件夹
【发布时间】:2020-06-25 07:30:08
【问题描述】:

我希望将特定的电子邮件(票证)保存到文件夹中。

我的搜索将我发送到此帖子 (Macro to save e-mail as text file, to be used in a rule)。

当我尝试将输出作为主题行时,我得到了

由于文件权限错误,Outlook 无法完成保存。

使用 SenderName 或 Time/Date 即可。

Public Sub SaveEmail(msg As Outlook.MailItem)
    ' assume an email is selected
    Set msg = ActiveExplorer.Selection.Item(1)

    ' the 2nd and 3rd options work but the 1st does not
    ' msg.SaveAs "C:\" & msg.Subject & ".msg", olTXT
    ' msg.SaveAs "C:\" & Format(Now, "YYYYMMDDHHMMSS") & ".txt", olTXT
    msg.SaveAs "C:\" & msg.SenderName & ".txt", olTXT
 End Sub

【问题讨论】:

  • 你能举一个主题行的例子吗?我主要想知道主题行是否包含非法字符和/或违反 Windows 文件名中的字符限制。
  • 你不是将 MailItem 传递给这个Sub SaveEmail() 吗?你为什么把它改成任何选择的?如果选择的不是邮件项目怎么办?
  • @JoeyGrant "R1-Min User Service Ticket TICK00" 加上两个零后的 4 位数字。帕特里克 老实说,我不完全确定。我一直在玩它,直到它符合我的规则。我假设是因为它只在一封电子邮件上运行,它可以工作?感谢您的回复!
  • @braX 起初没有注意到您的消息,但这正是我所需要的!谢谢!现在 IDK 如何将您的答案标记为正确,因为“检查”没有出现在我认为应该出现的位置。

标签: vba outlook


【解决方案1】:

并非所有字符都可以在文件名中使用。也就是这些。

Asterisk (*)
Backslash (\)
Colon (:)
Angle brackets (< >)
Question mark (?)
Slash (/)
Plus sign (+)
Pipe (|)
Quotation mark (")

网上有很多地方可以找到可以删除或替换它们的预先编写的函数。这是一个:Remove Illegal Characters from Filename

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 2018-10-16
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多