Outlook 2010 ต้องการสร้างกฎที่ย้ายจดหมายทั้งหมดจากกล่องจดหมายของฉันไปยังโฟลเดอร์อื่น:
- ได้รับการอ่าน
- เก่ากว่า X วัน
ฉันกำลังดูการเก็บถาวรอัตโนมัติ แต่ดูเหมือนว่าฉันจะไม่เจาะจงเกณฑ์นี้
Outlook 2010 ต้องการสร้างกฎที่ย้ายจดหมายทั้งหมดจากกล่องจดหมายของฉันไปยังโฟลเดอร์อื่น:
ฉันกำลังดูการเก็บถาวรอัตโนมัติ แต่ดูเหมือนว่าฉันจะไม่เจาะจงเกณฑ์นี้
คำตอบ:
วิธีที่ดีที่สุดที่ฉันพบในขณะนี้คือการสร้างโฟลเดอร์การค้นหาใหม่ที่มีเกณฑ์ที่กำหนดเองเช่นกับรายการที่ปรับเปลี่ยนในหรือก่อนวันที่กำหนด ฉันคลิกขวาที่โฟลเดอร์แล้วเลือก 'ลบทั้งหมด' ซึ่งจะส่งรายการทั้งหมดในโฟลเดอร์การค้นหาไปยังถังขยะ
โฟลเดอร์การค้นหาเป็นคำตอบอย่างไรก็ตาม OP ได้ถามเกี่ยวกับจดหมายที่เก่ากว่าวันที่ระบุ หากคุณใช้ "แก้ไขเมื่อสัปดาห์ที่แล้ว" มันจะแสดงทุกอย่างภายในสัปดาห์ที่ผ่านมาและกรองสิ่งที่เก่ากว่า 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