2012-08-07 5 views
1

삭제 된 항목 폴더가 아닌 사용자가 만든 폴더에 삭제 메일을 보내고 싶습니다.Outlook 2007 - 메일 삭제 명령 수신

메시지 내에서 삭제되었거나 폴더 /받은 편지함에서 삭제 된 메일을 가로 채서 해당 사용자 정의 폴더로 보내는 방법이 있습니까?

메일을 삭제 한 항목 폴더를보고 스크립트를 작성하여 사용자 정의 폴더로 옮길 수 있다고 생각했지만 이후 실제로 옮길 때 그대로 올바르게 삭제할 수 없었습니다. . 반면 삭제 버튼을 클릭 한 후 가로 채기를 할 수 있다면 메시지를 삭제하려는 항목을 삭제 한 항목 폴더에 '이동'할 수있는 옵션이 있습니다. 이 사용자 정의 DeletedItems 폴더에 저장되어있어 일단 영구적으로 삭제 될 수 있도록

답변

0

당신은 당신의 Item(등 메일, 작업, 일정,)에서 사용자 정의 UserProperty을 할당 할 수 있습니다.

는 IT가 어떻게 움직이는 논리 본인은 VBA이에 어떻게 보이는지 볼 것이라고 생각 사용자 정의 DeletedItems 그런 다음 사용자 속성의 존재를 확인 할 수있는 ...

if (mailItem.UserProperties["SoftDelete"] != null) 
    // keep in REAL deleted items 
else 
{ 
    // move to user-defined deleted items 
    mailItem.UserProperties.Add("SoftDelete", Outlook.OlUserPropertyType.olYesNo, false, false).Value = true; 
    mailItem.Save(); // persist user props 
} 
0

. 그것은 꽤 아니지만 그것은 작동합니다.

Private WithEvents olDeletedItems As items 
Private WithEvents olToBeDeletedItems As items 

Private Sub Application_Startup() 

Dim objNS As NameSpace 
Dim Cancel As Boolean 

Set objNS = Application.GetNamespace("MAPI") 

Set olDeletedItems = objNS.GetDefaultFolder(olFolderDeletedItems).items 
Debug.Print "Adding items to the - Deleted Items - folder will trigger olDeletedItems_ItemAdd" 

Set olToBeDeletedItems = objNS.GetDefaultFolder(olFolderInbox).Folders("To be deleted").items 
Debug.Print "Adding items to the - To be deleted - folder will trigger olToBeDeletedItems_ItemAdd" 

End Sub 

Private Sub olDeletedItems_ItemAdd(ByVal item As Object) 

Dim myNameSpace As NameSpace 
Dim targetFolder As MAPIFolder 

On Error GoTo notYes ' There is an error when there is nothing in SoftDelete 

Debug.Print item.Subject & " - " & item.UserProperties("SoftDelete").Value 
If item.UserProperties("SoftDelete").Value <> "Yes" Then 

    GoTo notYes 
Else 

    'The item has already been soft deleted 
    ' Okay to remain in the real deleted folder 

End If 

On Error GoTo 0 

Exit Sub 

notYes: 
Debug.Print item.Subject & " - Either not a Yes or there is nothing in SoftDelete" 

Set myNameSpace = Application.GetNamespace("MAPI") 
Set targetFolder = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("@To be deleted") 

item.Move targetFolder 

Set myNameSpace = Nothing 
Set targetFolder = Nothing 

End Sub 

Private Sub olToBeDeletedItems_ItemAdd(ByVal item As Object) 

item.UserProperties.Add("SoftDelete", olText).Value = "Yes" 
item.Save 

End Sub