根据附件中的某些单词将特定发件人的附件保存到计算机上的特定文件中

时间:2015-07-28 19:49:09

标签: vba attachment outlook-vba

我希望在收件箱中收到来自特定电子邮件地址并附带.xls(某些时候其他)附件的新电子邮件时触发宏。

我想做的是以下是创建一条规则:

当发件人为:"xyz"时,

1.检查附件中的某个单词,例如:“trade”,然后将其保存到某个文件夹中。

2.如果附件是:“LossesOfTrades”还有另一个词:“Losses”,请保存到另一个文件夹中。

3.格式化所有已保存的文件,使其名称后跟年份-mm-dd 例如:trade20150725.xls。 (请注意,附件中没有日期)

  1. 将电子邮件标记为已读。
  2. 请务必注意,某些文件的附件超过1个。

1 个答案:

答案 0 :(得分:0)

Outlook允许创建一个规则,该规则可以触发VBA宏,您可以随意执行任何操作。 VBA子应该如下所示:

Public Sub Test(mail as MailItem)
   '
End Sub

mail对象代表传入消息。

我建议从MSDN中的Getting Started with VBA in Outlook 2010文章开始。

MailItem类的Attachments属性返回一个Attachments对象,该对象表示指定项目的所有附件。

Attachment类的DisplayName属性允许设置表示名称的字符串,该字符串不需要是实际文件名,显示在表示嵌入附件的图标下方。

例如:

 Set myAttachments = myItem.Attachments 
 'Prompt the user for confirmation 
 Dim strPrompt As String 
 strPrompt = "Are you sure you want to save the first attachment " & _ 
             "in the current item to the Documents folder? If a file with the " & _ 
             "same name already exists in the destination folder, " & _ 
             "it will be overwritten with this copy of the file." 
 If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then 
   myAttachments.Item(1).SaveAsFile Environ("HOMEPATH") & "\My Documents\" & _ 
   myAttachments.Item(1).DisplayName 
 End If