ローカルフォルダに電子メールのコピーを保存するためのOutlook VBAマクロ
-
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を構成すると、そのフォルダをアーカイブできるはずです;各項目を個別に保存すると、最適ではないようです。
所属していません StackOverflow