Если вы хотите быстро изменить все изображения, встроенные в тело сообщения, на вложения электронной почты, вам не нужно вручную удалять и повторно прикреплять. Вы можете просто использовать фрагмент кода VBA, представленный в этой статье.
Иногда может потребоваться пакетное преобразование всех встроенных изображений во вложения. Например, слишком много изображений в теле сообщения будет мешать вам читать тексты в теле. Поэтому вы хотите удалить их из тела электронной почты и вместо этого добавить их в качестве вложений. Конечно, вы можете сделать это вручную. Но должно быть удобнее, если любые инструменты или коды VBA могут получить это за один раз. Здесь мы представим вам такой код VBA.

Быстрое преобразование всех встроенных изображений во вложения
- Для начала запустите программу Outlook.
- Затем вы можете переключиться на вкладку «Разработчик» и нажать кнопку «Visual Basic».
- Далее вы попадете в окно редактора Outlook VBA.
- Впоследствии вам нужно скопировать следующий код VBA в пустой модуль.
Sub TurnEmebeddedImagestoAttachments()
Dim objMail As Outlook.MailItem
Dim objAttachments As Outlook.attachments
Dim objAttachment As Outlook.Attachment
Dim objFileSystem As Object
Dim strTempFolder As String
Dim strFile As String
Dim i As Long
Select Case Outlook.Application.ActiveWindow.Class
Case olInspector
Set objMail = ActiveInspector.CurrentItem
Case olExplorer
Set objMail = Application.ActiveExplorer.Selection.Item(1)
End Select
Set objAttachments = objMail.attachments
'Create a temp folder
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
strTempFolder = objFileSystem.GetSpecialFolder(2).Path & "\Temp " & Format(Now, "YYYY-MM-DD hh-mm-ss")
MkDir (strTempFolder)
'Save all embedded images to temp folder
For i = objAttachments.Count To 1 Step -1
Set objAttachment = objAttachments.Item(i)
If IsEmbedded(objAttachment) = True Then
objAttachment.SaveAsFile strTempFolder & "\" & objAttachment.FileName
End If
Next
'Add extracted images as attachments
strTempFolder = strTempFolder & "\"
strFile = Dir(strTempFolder)
While Len(strFile) > 0
objMail.attachments.Add (strTempFolder & strFile)
strFile = Dir
Wend
'Remove embedded images from message body
With objMail
.BodyFormat = olFormatPlain
End With
End Sub
Function IsEmbedded(objCurAttachment As Outlook.Attachment) As Boolean
Dim objPropertyAccessor As Outlook.PropertyAccessor
Dim strProperty As String
Set objPropertyAccessor = objCurAttachment.PropertyAccessor
strProperty = objPropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E")
If InStr(1, strProperty, "@") > 0 Then
IsEmbedded = True
Else
IsEmbedded = False
End If
End Function
- После этого вы должны подтвердить, что ваш Outlook настроен на разрешение макросов.
- При желании, если вам это часто требуется, вам лучше добавить новый макрос на панель быстрого доступа для удобной проверки в будущем.
- В конце концов, вы можете попробовать. Выберите или откройте сообщение электронной почты, а затем запустите макрос, нажав кнопку нового макроса на панели быстрого доступа.
- Сразу же все встроенные изображения будут заменены на вложения, как показано на следующем снимке экрана:
Советы по защите ценных данных Outlook
Как мы все знаем, файл Outlook PST так же уязвим, как и обычные файлы, такие как документы Word или электронные таблицы Excel. Поэтому вам следует постоянно следить за всеми рисками, связанными с файлом PST, такими как вирусы или неправильное обращение. Поэтому вам необходимо регулярно делать резервные копии данных для вашего PST-файла. Кроме того, если вы можете себе это позволить, разумно иметь надежный Восстановление Outlook инструмент удобный, как DataNumen Outlook Repair.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая восстановить мдф и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com

