답변:
현재이 작업을 수행하는 가장 좋은 방법은 특정 날짜 또는 그 이전에 수정 된 항목과 같은 사용자 지정 기준을 사용하여 새 검색 폴더를 만드는 것입니다. 그런 다음 폴더를 마우스 오른쪽 버튼으로 클릭하고 '전체 삭제'를 선택하면 검색 폴더의 모든 항목이 저장소로 전송됩니다.
나는 비슷한 것을 찾고있었습니다. 설치시 자동 보관 기능이 비활성화되어 있으므로 매크로를 사용해야합니다. 내가 생각해 낸 것은 다음과 같습니다.
Option Explicit
Private Sub Application_MAPILogonComplete()
' this runs on app startup
Const MSG_AGE_IN_DAYS = 7
Dim oFolder As Folder
Dim oFilteredItems As Outlook.Items
Dim oItem As MailItem
Dim oDate As Date
oDate = DateAdd("d", -MSG_AGE_IN_DAYS, Now())
oDate = Format(oDate, "mm/dd/yyyy")
' you can use this command to select a folder
'Set oFolder = Application.Session.PickFolder
Set oFolder = Me.Session.Folders.GetFirst
' shows all the folder names
'For Each fldr In oFolder.Folders
' Debug.Print fldr.Name
'Next fldr
' this was the sub-folder I wanted to cleanup.
Set oFolder = oFolder.Folders("Storage").Folders("batch runs")
Debug.Print "checking " & oFolder.FolderPath
Debug.Print "for msgs older than " & oDate
' you can modify the filter to suit your needs
Set oFilteredItems = oFolder.Items.Restrict("[Received] <= '" & oDate & "' And [Unread] = True")
Debug.Print "removing " & oFilteredItems.Count & " items"
While oFilteredItems.Count > 0
Set oItem = oFilteredItems.GetFirst
Debug.Print " " & oItem.UnRead & " " & oItem.Subject
' the remove method permanently deletes the item.
oFilteredItems.Remove 1
'Debug.Print oFilteredItems.Count & " items left"
Wend
Debug.Print ". end"
Set oFolder = Nothing
Set oFilteredItems = Nothing
Set oItem = Nothing
End Sub
이 매크로는 응용 프로그램 수명주기의 마지막 단계에 연결됩니다. Outlook이 시작될 때 실행됩니다. 보안 불만이 발생하도록 서명하고 서명을 신뢰할 수도 있습니다.
HTH