Как автоматически печатать вложения при получении писем в Outlook?
Это руководство демонстрирует метод комбинирования сценария VBA и правила Outlook, чтобы помочь вам автоматически печатать вложения определенных писем при их поступлении в Outlook.
Автоматическая печать вложений при получении определенных писем
Предположим, вы хотите автоматически печатать вложения входящих писем от определенного отправителя. Вы можете сделать следующее.
Шаг 1: Создайте скрипт в Outlook
Сначала вам нужно создать сценарий VBA в Outlook.
1. Запустите ваш Outlook, одновременно нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.
2. В окне Microsoft Visual Basic for Applications дважды щелкните Project1 > Microsoft Outlook Objects > ThisOutlookSession, чтобы открыть окно ThisOutlookSession (Код), затем скопируйте следующий код в это окно кода.

VBA код 1: Автоматическая печать вложений (всех типов вложений) при получении писем
Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
Dim xFS As FileSystemObject
Dim xTempFolder As String
Dim xAtt As Attachment
Dim xShell As Object
Dim xFolder As Object, xFolderItem As Object
Dim xFileName As String
On Error GoTo xError
If Item.Attachments.Count = 0 Then Exit Sub
Set xFS = New FileSystemObject
xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
If Not xFS.FolderExists(xTempFolder) Then
MkDir (xTempFolder)
End If
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.NameSpace(0)
For Each xAtt In Item.Attachments
If IsEmbeddedAttachment(xAtt) = False Then
xFileName = xTempFolder & "\" & xAtt.FileName
xAtt.SaveAsFile (xFileName)
Set xFolderItem = xFolder.ParseName(xFileName)
xFolderItem.InvokeVerbEx ("print")
End If
Next xAtt
Set xFS = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
Set xShell = Nothing
xError:
If Err <> 0 Then
MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
Err.Clear
End If
Exit Sub
End Sub
Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
xHtml = xItem.HTMLBody
xID = "cid:" & xCid
If InStr(xHtml, xID) > 0 Then
IsEmbeddedAttachment = True
End If
End If
End Function
Примечание: Этот код поддерживает печать всех типов вложений, полученных в письмах. Если вы хотите печатать только определенный тип вложений, например PDF-файлы, примените следующий код VBA.
VBA код 2: Автоматическая печать указанного типа вложений при получении писем
Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
Dim xFS As FileSystemObject
Dim xTempFolder As String
Dim xAtt As Attachment
Dim xShell As Object
Dim xFolder As Object, xFolderItem As Object
Dim xFileType As String, xFileName As String
On Error GoTo xError
If Item.Attachments.Count = 0 Then Exit Sub
Set xFS = New FileSystemObject
xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
If Not xFS.FolderExists(xTempFolder) Then
MkDir (xTempFolder)
End If
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.NameSpace(0)
For Each xAtt In Item.Attachments
If IsEmbeddedAttachment(xAtt) = False Then
xFileName = xAtt.FileName
xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
xFileName = xTempFolder & "\" & xFileName
Select Case xFileType
Case "pdf" 'change "pdf" to the file extension you want to print
xAtt.SaveAsFile (xFileName)
Set xFolderItem = xFolder.ParseName(xFileName)
xFolderItem.InvokeVerbEx ("print")
End Select
End If
Next xAtt
Set xFS = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
Set xShell = Nothing
xError:
If Err <> 0 Then
MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
Err.Clear
End If
Exit Sub
End Sub
Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
xHtml = xItem.HTMLBody
xID = "cid:" & xCid
If InStr(xHtml, xID) > 0 Then
IsEmbeddedAttachment = True
End If
End If
End Function
Примечания:
3. Нажмите Инструменты > Ссылки. В открывшемся диалоговом окне Ссылки – Project1 отметьте поле Microsoft Scripting Runtime и нажмите кнопку ОК.

4. Сохраните код и нажмите клавиши Alt + Q, чтобы закрыть окно Microsoft Visual Basic for Applications.
Примечание: Убедитесь, что в вашем Outlook включена опция Включить все макросы. Вы можете проверить эту опцию, выполнив шаги, показанные ниже.

Шаг 2: Создайте правило для использования скрипта
После добавления сценария VBA в Outlook вам нужно создать правило для использования скрипта на основе определенных условий.
1. Перейдите на вкладку Главная, нажмите Правила > Управление правилами и оповещениями.

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

3. В первом диалоговом окне Мастер правил выберите Применить правило к получаемым сообщениям в поле Шаг 1, затем нажмите Далее.

4. Во втором диалоговом окне Мастер правил вам нужно:

5. В третьем диалоговом окне Мастер правил вам нужно настроить следующее.

Советы: Если опция «запустить скрипт» отсутствует в вашем Мастере правил, вы можете отобразить ее, следуя методу, описанному в этой статье: восстановление недостающей опции Запуск скрипта в правиле Outlook.
6. Затем появится еще одно диалоговое окно Мастер правил, запрашивающее исключения. Вы можете выбрать исключения, если это необходимо, в противном случае нажмите кнопку Далее без выбора.

7. В последнем диалоговом окне Мастер правил вам нужно указать имя для правила, а затем нажать кнопку Готово.

8. Затем вернитесь в диалоговое окно Правила и оповещения, вы увидите созданное правило в списке, нажмите кнопку ОК, чтобы завершить все настройки.

Теперь, когда письмо от указанного человека будет получено, прикрепленные файлы будут автоматически напечатаны.
Связанные статьи
Печатать только вложения из одного письма или выбранных писем в Outlook
В Outlook можно печатать письма, но пробовали ли вы печатать только вложения из одного письма или выбранных писем в Outlook? Эта статья представляет хитрости для решения этой задачи.
Печатать только заголовок сообщения электронной почты в Outlook
При печати электронной почты в Outlook будут напечатаны как заголовок сообщения, так и тело сообщения. Однако в некоторых особых случаях вам может понадобиться распечатать только заголовок сообщения с темой, отправителем, получателями и т. д. Эта статья представит два решения для этого.
Печать календаря за указанный/настраиваемый диапазон дат в Outlook
Обычно при печати календаря в режиме Месяц в Outlook автоматически выбирается месяц, содержащий текущую выбранную дату. Но вам может понадобиться печать календаря за пользовательский диапазон дат, такой как 3 месяца, полгода и т. д. Эта статья представит решение для вас.
Печать контакта с фотографией в Outlook
Обычно при печати контакта в Outlook его фотография не будет напечатана. Но иногда бывает более впечатляющим печатать контакт вместе с его фотографией. Эта статья представит некоторые обходные пути для выполнения этой задачи.
Печать части электронного письма в Outlook
Если вы получили электронное письмо и заметили, что требуется напечатать только часть содержимого письма вместо всего сообщения, что бы вы сделали? На самом деле, Outlook может помочь вам выполнить эту операцию с помощью интернет-браузеров, таких как Firefox и Internet Explorer. Здесь я возьму пример с интернет-браузеров. Посмотрите следующие инструкции.
Лучшие инструменты для повышения продуктивности в Office
Срочные новости: Выпущена бесплатная версия Kutools для Outlook!
Оцените совершенно новый Kutools для Outlook с более чем100 потрясающими функциями! Нажмите, чтобы скачать сейчас!
📧 Автоматизация Email: Автоответчик (доступно для POP и IMAP) / Запланировать отправку Email / Авто Копия/Скрытая копия по правилу при отправке письма / Автоматическое перенаправление (Расширенное правило) / Автоматически добавить приветствие / Автоматическое разделение Email с несколькими получателями на отдельные сообщения ...
📨 Управление Email: Отозвать письмо / Блокировать мошеннические Email по теме и другим признакам / Удалить дубликаты писем / Расширенный Поиск / Организовать папки ...
📁 Вложения Pro: Пакетное сохранение / Пакетное открепление / Пакетное сжатие / Автосохранение / Автоматическое отсоединение / Автоматическое сжатие ...
🌟 Магия интерфейса: 😊Больше красивых и современных Эмодзи / Напоминания о важных письмах / Сворачивание Outlook вместо закрытия ...
👍 Мгновенные действия в один клик: Ответить всем с вложениями / Антифишинг Email / 🕘Показать часовой пояс отправителя ...
👩🏼🤝👩🏻 Контакты и Календарь: Пакетное добавление контактов из выбранных Email / Разделить группу контактов на отдельные группы / Удалить напоминание о дне рождения ...
Используйте Kutools на вашем любимом языке – поддерживается английский, испанский, немецкий, французский, китайский и более40 других языков!

