전자 메일 저장을위한 Outlook VBA 매크로 로컬 폴더에 사본 복사본

StackOverflow https://stackoverflow.com//questions/25039209

  •  21-12-2019
  •  | 
  •  

문제

이메일을 보낼 때마다 해당 이메일의 사본을 모든 첨부 파일과 함께 로컬 폴더에 저장하고 싶습니다.

Outlook에서 사용자 정의 규칙 으로이 기능이 가능하지만 VBA 스크립트로 수행 할 수 있습니까?

Outlook 및 MS Exchange를 사용합니다.

도움이 되었습니까?

해결책

송신 된 메일을 로컬 폴더에 저장하는 사용자 정의 프로 시저를 호출하려면 Application_ItemSend 이벤트 프로 시저를 사용하여 수행 할 수 있습니다.

이 코드는 "ThisOutLookSession"모듈이됩니다.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Call SaveACopy(Item)
End Sub

Sub SaveACopy(Item As Object)
    Const olMsg As Long = 3

    Dim m As MailItem
    Dim savePath As String

    If TypeName(Item) <> "MailItem" Then Exit Sub

    Set m = Item

    savePath = "c:\users\your_user_name\desktop\"  '## Modify as needed
    savePath = savePath & m.Subject & Format(Now(), "yyyy-mm-dd-hhNNss")
    savePath = savePath & ".msg"


    m.SaveAs savePath, olMsg


End Sub
.

지정된 경로가 고유 한 상태인지 확인해야합니다. 위의 예는 상당히 원유입니다.또한 파일 이름 (슬래시, 파이프 등)에 넣을 수없는 불법 문자는 제거해야합니다 ...

대안으로서 폴더를 주기적으로 보관하기 만하면됩니다.보낸 메일의 사본을 "보낸"폴더에 저장하도록 Outlook을 구성하고 해당 폴더를 아카이브 할 수 있어야합니다.각 항목을 개별적으로 저장하는 것은 최적이 적은 것으로 보입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top