Перейти к основному содержанию

Как перечислить все имена вложений в теле сообщения при создании электронной почты в Outlook?

Есть ли у нас хорошие способы вставить все имена вложений в тело сообщения при составлении электронного письма в Outlook? В этой статье я расскажу о том, как решить эту задачу в Outlook.

Перечислите все имена вложений в теле сообщения при составлении письма с кодом VBA

Перечислите все имена вложений в теле сообщения при составлении электронной почты с помощью простой функции


Перечислите все имена вложений в теле сообщения при составлении письма с кодом VBA

Для выполнения этой задачи выполните следующие действия:

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. В Microsoft Visual Basic для приложений окно, дважды щелкните Эта сессия Outlook из Проект1 (VbaProject.OTM) панель, чтобы открыть режим, а затем скопируйте и вставьте следующий код в пустой модуль.

Код VBA: перечислить все имена вложений в теле сообщения:

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. Затем продолжайте нажимать Вставить > Модули, скопируйте и вставьте приведенный ниже код в открытый пустой модуль, см. снимок экрана:

Код VBA: перечислить все имена вложений в теле сообщения:

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, Затем нажмите Инструменты > Рекомендации в Microsoft Visual Basic для приложений окно, в выскакивающем Ссылки-Project1 диалоговое окно, отметьте Библиотека объектов Microsoft Word из файла Доступные ссылки список, см. снимок экрана:

5. Нажмите OK для выхода из диалогового окна следует добавить кнопку макроса в Панель быстрого доступа, В новой Сообщение окно, выберите Дополнительные команды из Настройка панели быстрого доступа выпадайте, см. снимок экрана:

6. В Параметры Outlook диалоговом окне выполните следующие операции:

(1.) Выберите Макрос из Выберите команды из раскрывающийся список;

(2.) Щелкните имя макроса, который вы только что вставили;

(3.) Затем щелкните Добавить кнопку, чтобы добавить макрос в Настройка панели быстрого доступа.

7. Затем нажмите OK чтобы закрыть диалоговое окно, теперь кнопка макроса была вставлена ​​в Панель быстрого доступа, см. снимок экрана:

8. Теперь, когда вы создаете новое сообщение и нажимаете кнопку макроса, имена вложений будут вставлены над телом сообщения, как показано на следующем снимке экрана:


Перечислите все имена вложений в теле сообщения при составлении электронной почты с помощью простой функции

Возможно, вам будет сложно применить приведенный выше код, если у вас есть Kutools for Outlook, С его Копировать имена вы можете быстро скопировать имена вложений в сообщении и вставить их в любом месте.

Примечание:Чтобы применить это Копировать имена, во-первых, вы должны скачать Kutools for Outlook, а затем быстро и легко примените эту функцию.

После установки Kutools for Outlook, пожалуйста, сделайте так:

1. Сначала создайте новый адрес электронной почты, который вам нужен, а затем нажмите Кутулс > Копировать имена в новом Сообщение окно, см. снимок экрана:

2. А затем появится окно с подсказкой, чтобы напомнить вам, что имена вложений были скопированы в буфер обмена, см. Снимок экрана:

3. Теперь вам просто нужно нажать Ctrl + V вместе, чтобы вставить имена вложений в нужное вам тело сообщения, см. снимок экрана:


Больше относительных статей:

  • Ответить всем оригинальными вложениями в Outlook
  • Обычно, когда вы применяете функцию «Ответить всем» для ответа на сообщение всем получателям в Outlook, исходные вложения автоматически теряются. Можно ли прикрепить оригинальные вложения при ответе всем в Outlook?
  • Скачать / сохранить вложения из Outlook в определенную папку
  • Вообще говоря, вы можете сохранить все вложения одного электронного письма, щелкнув «Вложения»> «Сохранить все вложения в Outlook». Но если вам нужно сохранить все вложения из всех полученных писем и получающих писем, какой идеал? В этой статье будут представлены два решения для автоматической загрузки вложений из Outlook в определенную папку.
  • Изменить место для сохранения вложений по умолчанию в Outlook
  • Вам надоело находить место вложения, которое вы указали каждый раз при запуске Outlook? В этом руководстве мы покажем вам, как изменить расположение прикрепленного файла по умолчанию. После этого указанная папка для сохранения вложений будет открываться автоматически каждый раз, когда вы сохраняете вложения, даже если вы перезапускаете Outlook.
  • Удалить все вложения из электронной почты в Outlook
  • Обычно, когда вы просматриваете электронное письмо, вы можете удалить вложение, щелкнув правой кнопкой мыши и выбрав пункт «Удалить вложение». Иногда в сообщении электронной почты может быть много вложений, и удалить их одно за другим будет утомительно. Здесь мы предлагаем вам два простых способа удалить все вложения в одном письме, а также удалить все вложения из нескольких писем в Outlook.

Лучшие инструменты для офисной работы

Kutools for Outlook - Более 100 мощных функций для улучшения вашего Outlook

🤖 Почтовый помощник с искусственным интеллектом: Мгновенные профессиональные электронные письма с помощью магии искусственного интеллекта: гениальные ответы одним щелчком мыши, идеальный тон, многоязычное владение. Преобразуйте электронную почту без особых усилий! ...

???? Автоматизация электронной почты: Нет на месте (доступно для POP и IMAP)  /  Расписание отправки писем  /  Автоматическое копирование/скрытая копия по правилам при отправке электронной почты  /  Автопересылка (расширенные правила)   /  Автоматическое добавление приветствия   /  Автоматически разделять электронные письма от нескольких получателей на отдельные сообщения ...

📨 Управление электронной почтой: Легко вспоминать электронные письма  /  Блокировка мошеннических писем от субъектов и других лиц  /  Удалить повторяющиеся электронные письма  /  Поиск  /  Объединение папок ...

📁 Вложения ProПакетное сохранение  /  Пакетное отсоединение  /  Пакетное сжатие  /  Автосохранение   /  Авто отсоединение  /  Автоматическое сжатие ...

???? Магия интерфейса: 😊Больше красивых и крутых смайлов   /  Повысьте производительность Outlook с помощью представлений с вкладками  /  Свернуть Outlook вместо закрытия ...

???? Чудеса в один клик: Ответить всем с входящими вложениями  /   Антифишинговые письма  /  🕘Показать часовой пояс отправителя ...

👩🏼‍🤝‍👩🏻 Контакты и календарь: Пакетное добавление контактов из выбранных писем  /  Разделить группу контактов на отдельные группы  /  Удалить напоминания о днях рождения ...

Более Особенности 100 Ждем вашего исследования! Нажмите здесь, чтобы узнать больше.

 

 

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