Note: The other languages of the website are Google-translated. Back to English

电子邮件到达 Outlook 时如何自动打印附件?

本教程演示了一种结合 VBA 脚本和 Outlook 规则的方法,以帮助您在某些电子邮件到达 Outlook 时自动打印它们的附件。


某些电子邮件到达时自动打印附件

假设您想自动打印来自某个发件人的传入电子邮件的附件。 您可以执行以下操作来完成它。

第 1 步:在 Outlook 中创建脚本

首先,您需要在 Outlook 中创建一个 VBA 脚本。

1.启动Outlook,按 其他 + F11 同时打开 Microsoft Visual Basic应用程序 窗口。

2。 在里面 Microsoft Visual Basic应用程序 窗口,双击 Project1 > Microsoft Outlook对象 > 本次展望会议 打开 ThisOutlookSession(代码) 窗口,然后将以下代码复制到此代码窗口中。

VBA 代码 1:电子邮件到达时自动打印附件(所有类型的附件)


Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20220413
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  On Error Resume Next
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Now, "yyyymmddhhmmss")
  MkDir (xTempFolder)
  
  'Set Item = Application.ActiveExplorer.Selection.Item(1)
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    xFileName = xAtt.FileName
    xFileType = LCase$(Right$(xFileName, 4))
    xFileName = xTempFolder & "\" & xFileName
    xAtt.SaveAsFile (xFileName)
      Set xFolderItem = xFolder.ParseName(xFileName)
      xFolderItem.InvokeVerbEx ("print")
  Next xAtt
'xFS.DeleteFolder (xTempFolder)
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

请注意: 此代码支持打印电子邮件中收到的所有类型的附件。 如果您只想打印指定类型的附件,例如 pdf 文件,请应用以下 VBA 代码。

VBA代码2:邮件到达时自动打印指定类型的附件

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20220413
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  On Error Resume Next
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Now, "yyyymmddhhmmss")
  MkDir (xTempFolder)
  
  'Set Item = Application.ActiveExplorer.Selection.Item(1)
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    xFileName = xAtt.FileName
    xFileType = LCase$(Right$(xFileName, 4))
    xFileName = xTempFolder & "\" & xFileName
    xAtt.SaveAsFile (xFileName)
    Select Case xFileType
    Case "pdf" ‘change “pdf” to the file extension you want to print
      Set xFolderItem = xFolder.ParseName(xFileName)
      xFolderItem.InvokeVerbEx ("print")
     End Select
  Next xAtt
'xFS.DeleteFolder (xTempFolder)
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

请注意: 在行 案例“pdf”, 请更换 “PDF” 到要打印的文件扩展名。

3. 继续点击 鑫安工具 > 引用。 在弹出 参考 - 项目1 对话框,检查 Microsoft脚本运行时 框,然后单击 OK 按钮。

4.保存代码,然后按 其他 + Q 关闭键 Microsoft Visual Basic应用程序 窗口。

请注意: 请确保 启用所有宏 Outlook 中启用了该选项。 您可以按照下面显示的步骤检查此选项。

Step2:构建规则以使用脚本

在 Outlook 中添加 VBA 脚本后,您需要创建规则以根据某些条件使用该脚本。

1. 转到主页选项卡,单击 规则 > 管理规则和警报.

2。 在里面 规则和警报 对话框中,单击 新规则 按钮以创建规则。

提示: 如果您在 Outlook 中添加了多个电子邮件帐户,请在 将更改应用到此文件夹 要应用规则的下拉列表。 否则,它将应用于当前选择的电子邮件帐户的收件箱。

3.在第一 规则向导 对话框中选择 对我收到的消息应用规则 步骤 框,然后单击 下一步。

4.在第二 规则向导 对话框,您需要:

4.1) 指定一个或多个条件 步骤 根据您的需要进行包装;
在这种情况下,我只想打印来自指定发件人的传入电子邮件中的附件。 在这里,我检查 来自人或公共团体 框。
4.2) 点击带下划线的值 步骤 框以编辑条件;
4.3)点击 下一步。 看截图:

5.在第三 规则向导 对话框,您需要配置如下。

5.1)在 第 1 步:选择操作部分, 检查 运行脚本 框;
5.2)在 步骤 部分,单击带下划线的文本“脚本”;
5.3)在开头 选择脚本 对话框中,单击上面添加的 VBA 代码的名称,然后单击 好;
5.4)点击 下一页 按钮。 看截图:

提示: 如果“运行脚本” 选项在您的 规则向导,您可以按照本文中提到的方法进行显示: 恢复 Outlook 规则中缺少的运行脚本选项.

6.然后另一个 规则向导 弹出询问例外情况。 如有必要,您可以选择例外,否则,单击 下一页 没有任何选择的按钮。

7.最后 规则向导,您需要为规则指定一个名称,然后单击 结束通话 按钮。

8.然后返回到 规则和警报 对话框,你可以看到你创建的规则列在里面,点击 OK 按钮以完成整个设置。

从现在开始,当收到来自指定人员的电子邮件时,将自动打印附件。


相关文章

仅从一封电子邮件或 Outlook 中选定的电子邮件打印附件
在 Outlook 中,您可以打印电子邮件,但您是否只打印了一封电子邮件或 Outlook 中选定电子邮件的附件? 本文介绍解决此工作的技巧。

在 Outlook 中仅打印电子邮件的邮件标题
在 Outlook 中打印电子邮件时,它将同时打印电子邮件中的邮件标题和邮件正文。 但是,在某些特殊情况下,您可能只需要打印出带有主题、发件人、收件人等的邮件标题。本文将介绍两种解决方案。

在 Outlook 的指定/自定义日期范围内打印日历
通常,在 Outlook 的月视图中打印日历时,它会自动选择包含当前选定日期的月份。 但是,您可能需要在自定义日期范围内打印日历,例如 3 个月、半年等。本文将为您介绍解决方案。

在 Outlook 中打印带图片的联系人
通常,在Outlook中打印联系人时,不会将其图片打印出来。 但是有时,打印带有图片的联系人会给人留下深刻的印象。 本文将介绍一些解决方法来完成它。

在 Outlook 中打印电子邮件的选择
如果您收到一封电子邮件,并且发现需要打印一些电子邮件内容,而不是打印整个邮件,您将怎么办? 实际上,Outlook可以借助Internet浏览器(例如Firefox和Internet Explorer)帮助您实现此操作。 在这里,我将以Internet浏览器为例。 请查看以下教程。

更多关于“在 Outlook 中打印”的文章...


Kutools for Outlook-为Outlook带来100个高级功能,并使工作更加轻松!

  • 自动CC / BCC 根据规则发送电子邮件; 自动转发 自定义多封电子邮件; 自动回复 没有交换服务器,还有更多自动功能...
  • BCC警告 -当您尝试全部答复时显示消息 如果您的邮件地址在“密件抄送”列表中; 缺少附件时提醒,还有更多提醒功能...
  • 在邮件对话中回复(全部)带有所有附件; 回复许多电子邮件 很快; 自动添加问候语 回复时将日期添加到主题中...
  • 附件工具:管理所有邮件中的所有附件, 自动分离, 全部压缩,全部重命名,全部保存...快速报告, 计算选定的邮件...
  • 强大的垃圾邮件 习俗 删除重复的邮件和联系人... 使您能够在Outlook中做得更聪明,更快和更好。
拍摄kutools前景kutools选项卡1180x121
拍摄kutools前景kutools加标签1180x121
 
按评论排序
注释 (0)
还没有评分。 成为第一位评论!
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0  产品特性
建议地点