Как автоматически печатать вложения при поступлении писем в Outlook?
В этом руководстве демонстрируется метод объединения сценария VBA и правила Outlook, который поможет вам автоматически печатать вложения определенных электронных писем, когда они поступают в Outlook.
Автоматически печатать вложения при получении определенных электронных писем
Предположим, вы хотите автоматически печатать вложения входящих писем от определенного отправителя. Вы можете сделать следующее, чтобы сделать это.
Шаг 1. Создайте сценарий в Outlook.
Во-первых, вам нужно создать скрипт VBA в Outlook.
1. Запустите Outlook, нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окно, двойной щелчок по Project1 > Объекты Microsoft Outlook > Эта сессия Outlook для открытия 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. Продолжайте и нажмите Инструменты > Рекомендации. В всплывающем Рекомендации – Проект1 диалоговое окно, проверьте Среда выполнения сценариев Microsoft поле, а затем щелкните OK .
4. Сохраните код и нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.
Примечание: Убедитесь, что Включить все макросы опция включена в вашем Outlook. Вы можете проверить эту опцию, выполнив шаги, показанные ниже.
Шаг 2: Создайте правило для использования скрипта
После добавления сценария VBA в Outlook необходимо создать правило для использования сценария на основе определенных условий.
1. Перейдите на вкладку Главная, нажмите Правила > Управление правилами и предупреждениями.
2. в Правила и предупреждения диалогового окна, нажмите Новое правило кнопку, чтобы создать правило.
Советы: Если вы добавили несколько учетных записей электронной почты в Outlook, укажите учетную запись в Применить изменения к этой папке выпадающий список, где вы хотите применить правило. В противном случае он будет применен к папке «Входящие» текущей выбранной учетной записи электронной почты.
3. В первом Мастер правил диалоговое окно, выберите Применить правило для сообщений, которые я получаю в Шаг 1 и нажмите Далее.
4. В секунду Мастер правил диалоговое окно, вам необходимо:
5. В третьем Мастер правил диалоговое окно необходимо настроить следующим образом.
Советы: Если «запустить сценарий” отсутствует в вашем Мастер правил, вы можете отобразить его, следуя методу, упомянутому в этой статье: восстановить отсутствующую pption Run A Script в правиле Outlook.
6. Затем еще один Мастер правил всплывает запрос на исключения. Вы можете выбрать исключения, если это необходимо, в противном случае нажмите кнопку Следующая кнопка без выбора。
7. В последний Мастер правил, необходимо указать имя правила, а затем нажать кнопку Завершить .
8. Затем он возвращается в Правила и предупреждения диалоговое окно, вы можете увидеть созданное вами правило в списке, щелкните OK кнопку, чтобы завершить все настройки.
Отныне при получении электронного письма от указанного лица вложенные файлы будут распечатываться автоматически.
Статьи по теме
Печатать вложения только из одного электронного письма или выбранных электронных писем в Outlook
В Outlook вы можете распечатать электронные письма, но распечатали ли вы вложения только из одного электронного письма или выбранных электронных писем в Outlook? В этой статье представлены приемы решения этой задачи.
Печатать только заголовок сообщения электронной почты в Outlook
При печати электронного письма в Outlook он печатает как заголовок сообщения, так и тело сообщения в электронном письме. Однако в некоторых особых случаях вам может потребоваться просто распечатать заголовок сообщения с указанием темы, отправителя, получателей и т. д. В этой статье представлены два решения для этого.
Печать календаря в указанном/настраиваемом диапазоне дат в Outlook
Обычно при печати календаря в режиме просмотра «Месяц» в Outlook автоматически выбирается месяц, содержащий текущую выбранную дату. Но вам может потребоваться распечатать календарь в пределах пользовательского диапазона дат, например, 3 месяца, полгода и т. д. Эта статья познакомит вас с решением.
Распечатать контакт с изображением в Outlook
Обычно изображение контакта не распечатывается при печати контакта в Outlook. Но иногда эффектнее будет распечатать контакт с его изображением. В этой статье будут представлены некоторые обходные пути, чтобы это сделать.
Распечатать выборку электронной почты в Outlook
Если вы получили сообщение электронной почты и обнаружили, что необходимо распечатать часть содержимого электронной почты вместо печати всего сообщения, что бы вы сделали? На самом деле Outlook может помочь вам выполнить эту операцию с помощью интернет-браузеров, таких как Firefox и Internet Explorer. В качестве примера я возьму Интернет-браузеры. Пожалуйста, посмотрите следующие руководства.
Лучшие инструменты для офисной работы
Kutools for Outlook - Более 100 мощных функций для улучшения вашего Outlook
🤖 Почтовый помощник с искусственным интеллектом: Мгновенные профессиональные электронные письма с помощью магии искусственного интеллекта: гениальные ответы одним щелчком мыши, идеальный тон, многоязычное владение. Преобразуйте электронную почту без особых усилий! ...
???? Автоматизация электронной почты: Нет на месте (доступно для POP и IMAP) / Расписание отправки писем / Автоматическое копирование/скрытая копия по правилам при отправке электронной почты / Автопересылка (расширенные правила) / Автоматическое добавление приветствия / Автоматически разделять электронные письма от нескольких получателей на отдельные сообщения ...
📨 Управление электронной почтой: Легко вспоминать электронные письма / Блокировка мошеннических писем от субъектов и других лиц / Удалить повторяющиеся электронные письма / Поиск / Объединение папок ...
📁 Вложения Pro: Пакетное сохранение / Пакетное отсоединение / Пакетное сжатие / Автосохранение / Авто отсоединение / Автоматическое сжатие ...
???? Магия интерфейса: 😊Больше красивых и крутых смайлов / Повысьте производительность Outlook с помощью представлений с вкладками / Свернуть Outlook вместо закрытия ...
???? Чудеса в один клик: Ответить всем с входящими вложениями / Антифишинговые письма / 🕘Показать часовой пояс отправителя ...
👩🏼🤝👩🏻 Контакты и календарь: Пакетное добавление контактов из выбранных писем / Разделить группу контактов на отдельные группы / Удалить напоминания о днях рождения ...
Более Особенности 100 Ждем вашего исследования! Нажмите здесь, чтобы узнать больше.