回复/转发/发送时如何在主题中添加特定的附件名称?

Posted

技术标签:

【中文标题】回复/转发/发送时如何在主题中添加特定的附件名称?【英文标题】:How do I add a specific attachment name to subject when replying/forwarding/sending? 【发布时间】:2018-07-18 08:11:04 【问题描述】:

我是新来的,但我开始对 VBA 和宏很感兴趣,它们可以帮助我保持邮箱井井有条。 简而言之,我在翻译办公室工作,每当客户要求翻译时,我都会向他们发送我们服务的报价(报价 XXXX.pdf)。

我找到以下字符串将附件名称添加到邮件主题:

Private WithEvents Mail As Outlook.MailItem
Private WithEvents Inspectors As Outlook.Inspectors

Private Sub Application_Startup()
  Set Inspectors = Application.Inspectors
End Sub

Private Sub Inspectors_NewInspector(ByVal Inspector As Inspector)
  If TypeOf Inspector.CurrentItem Is Outlook.MailItem Then
    Set Mail = Inspector.CurrentItem
  End If
End Sub

Private Sub Mail_AttachmentAdd(ByVal Attachment As Attachment)
  Mail.Subject = " / (" & Attachment.DisplayName & ")"
End Sub

但是,无论附加什么,它都只会用附件名称替换旧主题(并添加“ / ()”)。我的邮件签名还包含一个小图像文件,因此有时会将图像名称复制到主题行。

我有 2 个问题,非常感谢您的帮助:

    如何使它添加附件名称,而不是替换旧主题,使其看起来像

旧主题文本/(引用 XXXX.pdf)

    如何使此宏仅适用于引号(仅当附件包含“引号”时才将附件名称添加到主题)?

非常感谢!

【问题讨论】:

【参考方案1】:

抱歉,我自己似乎找到了解决方案。这是更新后的脚本:

Private WithEvents Mail As Outlook.MailItem 
Private WithEvents Inspectors As Outlook.Inspectors

Private Sub Application_Startup()   
Set Inspectors = Application.Inspectors 
End Sub

Private Sub Inspectors_NewInspector(ByVal Inspector As Inspector)   
  If TypeOf Inspector.CurrentItem Is Outlook.MailItem Then
    Set Mail = Inspector.CurrentItem   
  End If 
End Sub

Private Sub Mail_AttachmentAdd(ByVal Attachment As Attachment)   
  If Attachment.DisplayName Like "*Quote*" Then
    Mail.Subject = Mail.Subject & " / " & Attachment.DisplayName   
  End If 
End Sub

【讨论】:

以上是关于回复/转发/发送时如何在主题中添加特定的附件名称?的主要内容,如果未能解决你的问题,请参考以下文章

保存带有特定主题的传入电子邮件的附件

使用C#回复/回复所有特定的Outlook邮件

在 GAS/Javascript 中保存带有特定主题行的 Gmail 附件

通过 python 发送时附件不显示在 Outlook 中

无法添加附件

通过管道将电子邮件发送到 python 脚本