Preskoči na glavno vsebino

Kako pri sestavljanju e-pošte v Outlooku našteti vsa imena prilog v telo sporočila?

Ali obstajajo dobri načini, da pri sestavljanju e-pošte v Outlooku vstavimo vsa imena prilog v telo sporočila? V tem članku bom govoril o tem, kako rešiti to nalogo v Outlooku.

Pri sestavljanju e-pošte s kodo VBA navedite vsa imena prilog v telo sporočila

Pri sestavljanju e-pošte s preprosto funkcijo navedite vsa imena prilog v telo sporočila


Pri sestavljanju e-pošte s kodo VBA navedite vsa imena prilog v telo sporočila

Za dokončanje te naloge sledite naslednjim korakom:

1. Držite tipko ALT + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno.

2. v Microsoft Visual Basic za aplikacije okno, dvokliknite Ta OutlookSession Iz Projekt1 (VbaProject.OTM) , da odprete način, nato pa v prazen modul kopirajte in prilepite naslednjo kodo.

Koda VBA: V ime sporočila navedite vsa imena prilog:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim xMailItem As MailItem
    If Item.Class = olMail Then
        Set xMailItem = Item
        If xMailItem.Attachments.Count > 0 Then
          AddAttachmentNamesToBody
        End If
    End If
    End Sub

3. Nato nadaljujte s klikom Vstavi > Moduli, kopirajte in prilepite spodnjo kodo v odprti prazen modul, glejte posnetek zaslona:

Koda VBA: V ime sporočila navedite vsa imena prilog:

Public Sub AddAttachmentNamesToBody()
    Dim xMailItem As MailItem
    Dim xAttachment As Attachment
    Dim xFileName As String
   Dim xInspector As Outlook.Inspector
    Dim xDoc As Word.Document
    Dim xWdSelection As Word.Selection
    On Error Resume Next
    Set xMailItem = Outlook.ActiveInspector.CurrentItem
    If xMailItem.Attachments.Count = 0 Then
        Exit Sub
    End If
    xFileName = ""
    For Each xAttachment In xMailItem.Attachments
        If xFileName = "" Then
            xFileName = " <" & xAttachment.FileName & "> "
        Else
            xFileName = xFileName & vbCrLf & " <" & xAttachment.FileName & "> "
        End If
    Next xAttachment
    Set xInspector = Outlook.Application.ActiveInspector()
    Set xDoc = xInspector.WordEditor
    Set xWdSelection = xDoc.Application.Selection
    xWdSelection.HomeKey Unit:=wdStory
    xWdSelection.InsertBefore "Attachments: " & vbCrLf & xFileName & vbCrLf & vbCrLf
    Set xMailItem = Nothing
    End Sub

4. In nato kliknite Orodja > Reference v Microsoft Visual Basic za aplikacije okno, v izpuščenem Reference-Projekt1 pogovorno okno, preverite Knjižnica predmetov Microsoft Word možnost iz Razpoložljive reference seznam, glej posnetek zaslona:

5. Kliknite OK za izhod iz pogovornega okna, dodajte gumb makra v Orodna vrstica za hitri dostop. V novem Sporočilo okno, izberite Več ukazov Iz Prilagodite orodno vrstico za hitri dostop spustni meni, glej posnetek zaslona:

6. v Outlook Možnosti v pogovornem oknu izvedite naslednje postopke:

(1.) Izberite Makri Iz Izberite ukaze iz spustni seznam;

(2.) Kliknite ime makra, ki ste ga pravkar vstavili;

(3.) In nato kliknite Dodaj gumb za dodajanje makra v Prilagodite orodno vrstico za hitri dostop.

7. Nato kliknite OK da zaprete pogovorno okno, zdaj je gumb makra vstavljen v Orodna vrstica za hitri dostop, glej posnetek zaslona:

8. Zdaj, ko ustvarite novo sporočilo in kliknete gumb makra, bodo imena prilog vstavljena nad telo sporočila, kot je prikazano na naslednjem posnetku zaslona:


Pri sestavljanju e-pošte s preprosto funkcijo navedite vsa imena prilog v telo sporočila

Morda je zgornja koda nekoliko težja za uporabo, če jo imate Kutools za Outlook, Z njegovim Kopiraj imena funkcijo, lahko hitro kopirate imena prilog sporočila in jih prilepite kamor koli želite.

Opomba:Če želite uporabiti to Kopiraj imena, najprej bi morali prenesti Kutools za Outlookin nato funkcijo hitro in enostavno uporabite.

Po namestitvi Kutools za Outlook, naredite tako:

1. Najprej ustvarite novo e-pošto, ki jo potrebujete, in nato kliknite Kutools > Kopiraj imena v novem Sporočilo okno, glej posnetek zaslona:

2. Nato se prikaže okno s pozivom, ki vas opomni, da so bila imena prilog kopirana v odložišče, glejte posnetek zaslona:

3. Zdaj morate samo pritisniti Ctrl + V tipki skupaj, da prilepite imena prilog v telo sporočila, ki ga potrebujete, glejte posnetek zaslona:


Več relativnih člankov:

  • Odgovorite vsem z izvirnimi prilogami v Outlooku
  • Ko običajno uporabite funkcijo Odgovori vsem, da odgovorite na sporočilo vsem prejemnikom v Outlooku, se izvirne priloge samodejno izgubijo. Ali je mogoče pri odgovoru vsem v Outlooku priložiti izvirne priloge?
  • Prenesite/shranite priloge iz Outlooka v določeno mapo
  • Na splošno lahko shranite vse priloge enega e-poštnega sporočila s klikom na Priloge> Shrani vse priloge v Outlooku. Če pa želite shraniti vse priloge iz vseh prejetih in prejetih e-poštnih sporočil, je kakšen ideal? Ta članek bo predstavil dve rešitvi za samodejni prenos prilog iz Outlooka v določeno mapo.
  • Spremenite privzeto lokacijo za shranjevanje prilog v Outlooku
  • Ste se naveličali iskanja mesta priloge, ki ste ga vsakič določili ob zagonu Outlooka? V tej vadnici vam bomo pokazali, kako spremeniti privzeto mesto priloge. Po tem se bo navedena mapa za shranjevanje prilog samodejno odprla vsakič, ko shranite priloge, čeprav znova zaženete Outlook.
  • Odstranite vse priloge iz e-pošte v Outlooku
  • Običajno lahko med predogledom e-pošte izbrišete prilogo z desnim klikom in izberete element Odstrani prilogo. Včasih je lahko v e-poštnem sporočilu veliko prilog in eno za drugo jih bo dolgočasno odstranjevati. Tukaj vam nudimo dva preprosta trika za odstranitev vseh prilog v enem e-poštnem sporočilu in odstranitev vseh prilog iz več e-poštnih sporočil tudi v Outlooku.

Najboljša pisarniška orodja za produktivnost

Kutools za Outlook - Več kot 100 zmogljivih funkcij za nadgradnjo vašega Outlooka

🤖 AI poštni pomočnik: Takojšnja profesionalna e-poštna sporočila z umetno inteligenco – z enim klikom do genialnih odgovorov, popoln ton, večjezično znanje. Preoblikujte pošiljanje e-pošte brez napora! ...

📧 Avtomatizacija e-pošte: Odsoten (na voljo za POP in IMAP)  /  Načrtujte pošiljanje e-pošte  /  Samodejna CC/BCC po pravilih pri pošiljanju e-pošte  /  Samodejno naprej (napredna pravila)   /  Samodejno dodaj pozdrav   /  E-poštna sporočila več prejemnikov samodejno razdeli na posamezna sporočila ...

📨 Email upravljanje: Enostaven priklic e-pošte  /  Blokiraj prevarantska e-poštna sporočila glede na teme in druge  /  Izbriši podvojena e-poštna sporočila  /  napredno iskanje  /  Združite mape ...

📁 Priloge ProShrani paket  /  Batch Detach  /  Paketno stiskanje  /  Samodejno shranite   /  Samodejno loči  /  Samodejno stiskanje ...

🌟 Vmesnik Magic: 😊Več lepih in kul emojijev   /  Povečajte Outlookovo produktivnost s pogledi z zavihki  /  Minimizirajte Outlook, namesto da bi ga zaprli ...

???? Čudeži z enim klikom: Odgovori vsem z dohodnimi prilogami  /   E-poštna sporočila proti lažnemu predstavljanju  /  🕘Pokaži pošiljateljev časovni pas ...

👩🏼‍🤝‍👩🏻 Stiki in koledar: Paketno dodajanje stikov iz izbranih e-poštnih sporočil  /  Razdelite skupino stikov na posamezne skupine  /  Odstranite opomnike za rojstni dan ...

Over 100 Lastnosti Čakajte na svoje raziskovanje! Kliknite tukaj, če želite odkriti več.

 

 

Comments (12)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Why am I getting "user-defined type not defined" when I get to Step 8?
This comment was minimized by the moderator on the site
Why am I getting "user-defined type not defined" when I get to Step 8?
This comment was minimized by the moderator on the site
When I do this, it always put the attachments at the beginning of the message, no matter where my cursor is located. I then have to copy/paste to the bottom of the email. Is there a way to change that?
This comment was minimized by the moderator on the site
Hello, VMS,
If you want to put the attachments at the the position of your cursor, please replace the second code with following code:

Public Sub AddAttachmentNamesToBody()

Dim xMailItem As MailItem

Dim xAttachment As Attachment

Dim xFileName As String

Dim xInspector As Outlook.Inspector

Dim xDoc As Word.Document

Dim xWdSelection As Word.Selection

On Error Resume Next

Set xMailItem = Outlook.ActiveInspector.CurrentItem

If xMailItem.Attachments.Count = 0 Then

Exit Sub

End If

xFileName = ""

For Each xAttachment In xMailItem.Attachments

If xFileName = "" Then

xFileName = " <" & xAttachment.FileName & "> "

Else

xFileName = xFileName & vbCrLf & " <" & xAttachment.FileName & "> "

End If

Next xAttachment

Set xInspector = Outlook.Application.ActiveInspector()

Set xDoc = xInspector.WordEditor

Set xWdSelection = xDoc.Application.Selection

xWdSelection.InsertBefore "Attachments: " & vbCrLf & xFileName & vbCrLf & vbCrLf

Set xMailItem = Nothing

End Sub

Please try, hope it can help you!
This comment was minimized by the moderator on the site
That worked! Now another favor... How do I exclude certain file types or names? My required company signature contains a PNG file that I would like to exclude.Thank you!!
This comment was minimized by the moderator on the site
To exclude some specific files, please apply the below code, please try it.
Public Sub AddAttachmentNamesToBody()

Dim xMailItem As MailItem

Dim xAttachment As Attachment

Dim xFileName As String

Dim xInspector As Outlook.Inspector

Dim xDoc As Word.Document

Dim xWdSelection As Word.Selection

Dim xExt As String

Dim xFound As Boolean

Dim xExtArr As Variant

On Error Resume Next

xExtArr = Array("docx", "exe") 'change the file extension you want to exclude

Set xMailItem = Outlook.ActiveInspector.CurrentItem

If xMailItem.Attachments.Count = 0 Then

Exit Sub

End If

xFileName = ""

For Each xAttachment In xMailItem.Attachments

xExt = VBA.Mid(xAttachment.FileName, VBA.InStrRev(xAttachment.FileName, ".") + 1)

xFound = False

For i = LBound(xExtArr) To UBound(xExtArr)

If xExt = xExtArr(i) Then

xFound = True

Exit For

End If

Next

If xFound = False Then

If xFileName = "" Then

xFileName = " <" & xAttachment.FileName & "> "

Else

xFileName = xFileName & vbCrLf & " <" & xAttachment.FileName & "> "

End If

End If

Next xAttachment

Set xInspector = Outlook.Application.ActiveInspector()

Set xDoc = xInspector.WordEditor

Set xWdSelection = xDoc.Application.Selection

xWdSelection.InsertBefore "Attachments: " & vbCrLf & xFileName & vbCrLf & vbCrLf

Set xMailItem = Nothing

End Sub
This comment was minimized by the moderator on the site
when I tried this code it sends the attachment names in every email that has attachments.
I want it to only do it when I click the macro.

How do I amend the code to do just that?
This comment was minimized by the moderator on the site
I also don't know how to fix it. Anyone could hep on that?
This comment was minimized by the moderator on the site
This is wonderful -- thank you! Is there also a way to somehow view all the attachment names in an email that has been sent to you from someone else (i.e. received)? For some reason, the file names are not displaying in full unless you hover, which is ridiculous when you regularly have 15 files to sort through.
This comment was minimized by the moderator on the site
Hello,
To List all attachment names in an received email, please copy and pase the below VBA code into the ThisOutlookSession module of the Microsoft Visual Basic for Applications window:

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim xEIDArr As Variant, xEID As Variant, xItem As Object
Dim xAttachment As Attachment
Dim xFileName As String
On Error Resume Next
xEIDArr = Split(EntryIDCollection, ",")
For Each xEID In xEIDArr
Set xItem = Session.GetItemFromID(xEID)
If xItem.Class = olMail Then
xFileName = ""
For Each xAttachment In xItem.Attachments
If IsEmbeddedAttachment(xAttachment) = False Then
If xFileName = "" Then
xFileName = " " & "<" & xAttachment.FileName & ">"
Else
xFileName = xFileName & "
" & " " & "<" & xAttachment.FileName & ">"
End If
End If
Next xAttachment
If xFileName = "" Then Exit Sub
xFileName = "Attachments: " & "
" & xFileName & "
" & "
"
xItem.HTMLBody = "" & xFileName & "" & xItem.HTMLBody
xItem.Save
End If
Next
Set xItem = Nothing
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xAttParent As Object
Dim xCID As String, xID As String
Dim xHTML As String
On Error Resume Next
Set xAttParent = Attach.Parent
xCID = ""
xCID = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCID <> "" Then
xHTML = xAttParent.HTMLBody
xID = "cid:" & xCID
If InStr(xHTML, xID) > 0 Then
IsEmbeddedAttachment = True
Else
IsEmbeddedAttachment = False
End If
End If
End Function

After pasting this code, when new emails with attachments arriving in your Outlook, the attachment names will be listed at the top of the message body automatically.
Please try it, hope it can help you!
This comment was minimized by the moderator on the site
this is great. Is there any way to merge this with VMS's request above to exclude some specific files included in signatures (.png, .jpg, etc.)?
This comment was minimized by the moderator on the site
Great, thanks for that. I wonder if it is possible that the list of attachments is only attached when I write to a specific email address?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations