ماكرو 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