2015-03-31 59 views
-2

我需要根據發送給哪個電子郵件(而不是發件人)自動保存附件。Outlook 2013代碼根據發送到的電子郵件來保存附件

我在郵件服務器pdf @,xml @,txt @上有3封電子郵件。如果電子郵件發送到@pdf,我需要將它保存在網絡驅動器上,其他電子郵件也一樣,但不同的位置。

我見過的所有其他代碼只考慮了發件人沒有發送到的地址。

回答

0

在Outlook中創建了3個列表和一個規則。

當電子郵件發送到(添加所有後期列表)並且有附件 運行此腳本。 PS。您必須編輯所有路徑,文件夾名稱和postlistnames。

Sub SaveAllAttachments(objitem As MailItem) 

Dim objAttachments As Outlook.Attachments 
Dim strName, strLocation As String 
Dim dblCount, dblLoop As Double 

Dim strSub As String 
Dim iRcpCount, iRcp As Integer 

strLocation = "O:\PDF\" 

On Error GoTo ExitSub 
If objitem.Class = olMail Then 
    Set objAttachments = objitem.Attachments 
    dblCount = objAttachments.Count 
    If dblCount <= 0 Then 
     GoTo 100 
    End If 

    strSub = "" 
    iRcpCount = objitem.Recipients.Count 
    For iRcp = 1 To iRcpCount 
     If objitem.Recipients(iRcp).Name = "Postlist1" Then 
      strSub = "Folder1onOdrive" 
     ElseIf objitem.Recipients(iRcp).Name = "Postlist2" Then 
      strSub = "Folder2onOdrive" 
     ElseIf objitem.Recipients(iRcp).Name = "Postlist3" Then 
      strSub = "Folder3onOdrive" 
     End If 

    Next iRcp 

    For dblLoop = 1 To dblCount 
     strName = objAttachments.Item(dblLoop).FileName 
     'strName = strLocation & strName 
     strName = strLocation & strSub & strName 
     'strName = strLocation & strName 
     objAttachments.Item(dblLoop).SaveAsFile strName 
    Next dblLoop 
    objitem.Delete 
End If 
100 
ExitSub: 
Set objAttachments = Nothing 
Set objOutlook = Nothing 
End Sub 
0

您可以處理應用程序類的ItemSend事件,您可以在其中檢出收件人地址(或收件人收藏夾)並在需要時保存附件。例如:

Public WithEvents myOlApp As Outlook.Application 

Public Sub Initialize_handler() 
    Set myOlApp = Outlook.Application 
End Sub 

Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean) 
    Dim prompt As String 
    prompt = "Are you sure you want to send " & Item.Subject & "?" 
    If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then 
    Cancel = True 
    End If 
End Sub 

的ItemSend事件通過督察發射每當微軟Outlook項目被髮送,或者由用戶(檢查員關閉之前,但用戶後,點擊發送按鈕),或者發送Outlook項目的方法(如MailItem)在程序中使用。

您可能會發現Getting Started with VBA in Outlook 2010文章有幫助。

相關問題