Outlook 2010.받은 편지함에서 다른 폴더로 모든 메일을 이동시키는 규칙을 만들려고합니다.
- 읽었습니다
- X 일보다 오래된
자동 보관을보고 있었지만 내 기준에 따라 구체적으로 지정할 수는 없습니다.
답변
현재이 작업을 수행하는 가장 좋은 방법은 특정 날짜 또는 그 이전에 수정 된 항목과 같은 사용자 지정 기준을 사용하여 새 검색 폴더를 만드는 것입니다. 그런 다음 폴더를 마우스 오른쪽 버튼으로 클릭하고 ‘전체 삭제’를 선택하면 검색 폴더의 모든 항목이 저장소로 전송됩니다.
답변
검색 폴더가 답이지만 OP 는 특정 날짜 보다 오래된 메일에 대해 질문했습니다 . “마지막 주 수정”을 사용하면 지난 주 내의 모든 내용이 표시되고 1 주가 지난 항목을 필터링합니다. 그 반대의 경우 다음과 같은 언어를 사용하십시오.
- 8 일 전
- 1 주 전
- 기타…
답변
나는 비슷한 것을 찾고있었습니다. 설치시 자동 보관 기능이 비활성화되어 있으므로 매크로를 사용해야합니다. 내가 생각해 낸 것은 다음과 같습니다.
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