ローカルフォルダに電子メールのコピーを保存するための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

指定されたパスが一意であることを確認する必要があります/etc。、上記の例はかなり粗雑です。また、ファイル名に入れることができない違法な文字(スラッシュ、パイプなど)を取り除く必要があります。)...

別の方法として、私は単にあなたのフォルダを定期的にアーカイブすることをお勧めします。送信されたメールのコピーを「送信済み」フォルダに保存するようにOutlookを構成すると、そのフォルダをアーカイブできるはずです;各項目を個別に保存すると、最適ではないようです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top