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

如何自动将附件从Outlook下载/保存到特定文件夹?

一般来说,您可以通过单击保存一封电子邮件的所有附件 附件 > 保存所有附件 在 Outlook 中。 但是,如果您需要保存所有收到的电子邮件和接收电子邮件中的所有附件,有什么想法吗? 本文将介绍两种自动将附件从 Outlook 下载到某个文件夹的解决方案。


使用VBA和规则将Outlook附件自动下载到文件夹

此方法将引入VBA脚本,并使用规则运行此脚本,以自动将Outlook附件下载并保存到特定文件夹。 请执行以下操作:

1。 按 其他 + F11 键以打开“ Microsoft Visual Basic应用程序”窗口。

2。 点击 插页 > 模块,然后将以下VBA脚本粘贴到新打开的“模块”窗口中。

VBA:自动将Outlook附件保存到某个文件夹

Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "C:\Users\DT168\Documents\outlook-attachments\"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub

备注:请找出 sSaveFolder =“ C:\ Users \ DT168 \ Documents \ outlook-attachments \”,然后根据需要替换目标文件夹的路径。

3。 保存VBA脚本,然后关闭“ Microsoft Visual Basic for Applications”窗口。

4。 去的 邮件 查看,然后单击 首页 > 规则 > 管理规则和警报。 看截图:

5。 在打开的“规则和警报”对话框中,请单击 新规则 上的按钮 电子邮件规则 标签。 看截图:

6。 现在,在“规则向导”对话框中,请单击以选择 对我收到的消息应用规则 选项,然后单击 下一页 按钮。

7。 在“规则向导(您要检查哪些条件?)”对话框中,请取消选中任何选项,然后单击 下一页 按钮。 然后点击 在弹出的Microsoft Outlook对话框中单击按钮。 看截图:

8。 现在,在“规则向导”(您要对消息做什么?)对话框中,请: (1) 访问 运行脚本 选项; (2) 点击文字 一个脚本 打开“选择脚本”对话框,选择我们在步骤2中添加的脚本,然后单击 OK 按钮; (3) 点击 下一页 按钮。

9。 在“规则向导(是否有例外?)”对话框中,请单击 下一页 直接点击。

10。 现在,在最后一个“规则向导”对话框中,请在 步骤 框,根据需要检查选项 步骤 部分,然后单击 结束通话 按钮。

11。 关闭“规则和警报”对话框。

现在,所有附件都将从您的电子邮件帐户下载并保存到指定的目标文件夹中。 并且所有传入电子邮件的附件也将自动下载并保存到指定的文件夹中。


使用Kutools for Outlook自动将Outlook附件下载到文件夹

如果您安装了Kutools for Outlook,则可以应用它 自动分离 选项以自动下载所有Outlook附件并轻松保存到特定文件夹。

Kutools for Outlook:为Outlook添加了100多种方便的工具,可以在60天内免费试用,没有任何限制。 了解更多      现在免费试用

1。 点击 库工具 > 自动分离 > 启用 启用自动分离功能。

2。 继续点击 库工具 > 自动分离 > 自动分离管理器.

3。 在“自动分离附件”对话框中,检查 自动分离所有收到的附件 选项,然后进行如下配置:
(1)点击浏览按钮  指定目标文件夹以保存自动分离的附件;
(2)可以选择检查 使用以下样式创建子文件夹 选项,然后从下拉列表下面选择一种子文件夹样式;
(3)可以选择检查 只有带有以下扩展名的附件 选项,然后在下面的框中键入附件文件扩展名;
(4)可以选择检查 附件图标仍保留在电子邮件中 选项​​。

备注:如果需要自动分离发件人的附件,则可以检查 按规则自动分离附件 选项,点击 全新 按钮,然后在第二个“自动分离附件”对话框中键入发件人的电子邮件地址并指定目标文件夹。

4。 点击 Ok 按钮保存设置。

从现在开始,所有附件(或具有指定文件扩展名的附件,或根据您的设置来自指定发件人的附件)将自动保存。

备注:您可以将Kutools用于Outlook的 全部分离 (附件)功能或 保存全部 (附件)功能可在Outlook中从多个/所有收到的电子邮件中快速下载/保存所有附件。


演示:使用Kutools for Outlook自动将Outlook附件下载到文件夹


小技巧: 在这个视频里, 库工具 选项卡添加者 Kutools for Outlook。 如果需要,请单击 此处 免费试用60天!


相关文章:


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

  • 自动CC / BCC 根据规则发送电子邮件; 自动转发 自定义多封电子邮件; 自动回复 没有交换服务器,还有更多自动功能...
  • BCC警告 -当您尝试全部答复时显示消息 如果您的邮件地址在“密件抄送”列表中; 缺少附件时提醒,还有更多提醒功能...
  • 在邮件对话中回复(全部)带有所有附件; 回复许多电子邮件 很快; 自动添加问候语 回复时将日期添加到主题中...
  • 附件工具:管理所有邮件中的所有附件, 自动分离, 全部压缩,全部重命名,全部保存...快速报告, 计算选定的邮件...
  • 强大的垃圾邮件 习俗 删除重复的邮件和联系人... 使您能够在Outlook中做得更聪明,更快和更好。
拍摄kutools前景kutools选项卡1180x121
拍摄kutools前景kutools加标签1180x121
 
按评论排序
注释 (104)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
大家好,脚本不适合我。我还有其他事情需要做。 Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem) Dim oAttachment As Outlook.Attachment Dim sSaveFolder As String sSaveFolder = "\\MHO-ITD-SM\Users\smutharaju\Desktop\Ranjith\Outlook Attachments" 对于 MItem.Attachments oAttachment 中的每个 oAttachment .SaveAsFile sSaveFolder & oAttachment.DisplayName Next End Sub
SRINIVAS
该评论由网站上的主持人最小化
嗨 SRINIVAS,我相信您需要将驱动器号添加到链接的开头。 即 C:\users\test\etc 希望这会有所帮助! 安德鲁
安德鲁
该评论由网站上的主持人最小化
在 VBA 中,您还需要在文件路径的末尾添加最后一个反斜杠。 如下。 "D:\Outlook 附件\" 希望这能解决任何问题。马特
马特
该评论由网站上的主持人最小化
HI

VBA 脚本对我很有用......一次 - 再也不会了。

我什至删除了文件夹中的文件并重新运行,什么也没有。

我究竟做错了什么 ? - 规则正在运行,因为我让它同时显示警报
戴夫布拉默
该评论由网站上的主持人最小化
[quote]大家好,脚本对我不起作用。我还有其他事情需要做。 Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem) Dim oAttachment As Outlook.Attachment Dim sSaveFolder As String sSaveFolder = "\\MHO-ITD-SM\Users\smutharaju\Desktop\Ranjith\Outlook Attachments" 对于 MItem.Attachments oAttachment 中的每个 oAttachment .SaveAsFile sSaveFolder & oAttachment.DisplayName Next End Sub斯里尼瓦斯[/quote] 同样在这里我尝试了所有选项我觉得脚本正在运行但我仍然没有看到文件加载到我的计算机指定路径中。有人可以帮助我最感激
卡延
该评论由网站上的主持人最小化
脚本似乎也不起作用,一切都很好,代码等,当我运行规则时没有附件通过? 在office 2007上运行? 任何想法为什么?
丹尼
该评论由网站上的主持人最小化
您好,我已经尝试了选项 1(使用 VBA 和规则自动将 Outlook 附件下载到文件夹)并且效果很好。 我有以下两个查询:i)有没有办法通过扩孔文件在多个共享路径下载相同的附件? ii)它还保存附件,光标在每张纸的A1上,应该选择sheet1。 因此,当您从路径表打开文件时,应该打开 A1 上的光标。 非常感谢你! 问候, Bhavesh Luhana
巴韦什·卢哈纳
该评论由网站上的主持人最小化
此规则或类似规则是否可以应用于 Outlook 的 webmail 版本?
尤金
该评论由网站上的主持人最小化
嗨,我一直在尝试按照指示进行操作。 但保存宏后我没有得到“运行脚本”选项。 我已经启用了宏,重新启动了 Outlook 几次。 但它仍然是该选项仍然不起作用。 请帮忙。 谢谢!
阿芙妮卡·拉斯托吉
该评论由网站上的主持人最小化
我同意 AVNIKA。 我有同样的问题:-|
迪努舍
该评论由网站上的主持人最小化
嗨,我一直在尝试按照指示执行步骤,我选择了上述所有选项,但是在选择“运行脚本”选项并选择“脚本”链接后,我没有在该对话框中获得脚本。 请尽快提供帮助。 谢谢!
该评论由网站上的主持人最小化
我有同样的问题。 我在这里找到了一个解决方案: https://answers.microsoft.com/en-us/msoffice/forum/msoffice_outlook-mso_win10/the-option-to-run-a-scritp-has-disappeared-from/d289e698-47fa-497a-80fa-633067a0de37#ThreadAnswers<br /> 一旦我用密钥更新了我的注册表......它又开始按预期工作了。 试一试,看看它是否适合你。
院长
该评论由网站上的主持人最小化
非常感谢您如此明确地提到的步骤......这些对我有很大帮助,让我的工作变得非常轻松......谢谢......!
该评论由网站上的主持人最小化
这对我来说非常有效 Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem) Dim oAttachment As Outlook.Attachment Dim sSaveFolder As String sSaveFolder = "\\Dck-server-02\g\00 Uploads\" For Each oAttachment In MItem.Attachments oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName Next End Sub 如您所见,当它复制到网络驱动器时,我将附件的文件名保留为相同。 但是,如果多封电子邮件的附件文件名相同,则该脚本将允许最近的附件覆盖网络文件夹中的前一个附件。 是否有一个我可以输入到脚本中的编辑,它将附加一个“-1”“-2”“-3”等......到附件文件名的末尾? 因此,例如,如果附件被命名为“inspection”并且我得到多个通过,我可以将它们重命名为“inspection-1”“inspection-2”“inspection-3”任何帮助将不胜感激! 谢谢你。
Janayah
该评论由网站上的主持人最小化
嗨,贾亚亚。 在保存之前尝试检查文件。 Dim filepath As String filepath = Dir(sSaveFolder & oAttachment.DisplayName) If filepath = "" Then oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName Else oAttachment.SaveAsFile sSaveFolder & "1-" & oAttachment.DisplayName End if 等等...玩弄代码,让我知道你的进展如何..
短发
该评论由网站上的主持人最小化
是否有可能更改此设置,以便仅复制名称中包含某些单词的文件?
法比安
该评论由网站上的主持人最小化
可以设置 Kutools 使其仅根据主题保存来自某些电子邮件的附件吗? 同一个文件可以从一封电子邮件保存到多个目录吗? 我们希望将其用于报告分发而不是电子邮件。
JESS
该评论由网站上的主持人最小化
嗨,非常感谢这项工作,但只有一次,下次文件不会保存在磁盘中:(我不知道为什么,知道吗?谢谢
马科斯
该评论由网站上的主持人最小化
嗨,我有同样的问题(它只工作一次)。 你能解决问题吗?
在我看来,
该评论由网站上的主持人最小化
嗨,
请检查目标文件夹outlook-attachments是否存在。 有关此问题的更多信息将有所帮助。 谢谢!
技术支持
该评论由网站上的主持人最小化
嗨,我必须说它的脚本很棒,它解决了我 80% 的工作,但我仍然有一个问题。 我收到的附件每天都有新的日期和时间戳,我想自动保存这些附件,但要删除日期/时间戳,以便下次它将替换/覆盖并保存同名的新副本。,做不希望每天的附件都以新日期保存。 相反,需要在相同位置替换相同的文件。 你能帮忙吗?
范迪
该评论由网站上的主持人最小化
大家好,我该如何设置,以便我有不同的脚本将文件发送到不同的文件夹? 感谢您提前提供的任何帮助!
弥敦道
该评论由网站上的主持人最小化
嗨,我正在设置页面顶部的脚本,它工作正常,但是,我想命名正在保存的附件,以便它覆盖旧的。 我需要添加什么才能实现这一点? 谢谢大卫
大卫
该评论由网站上的主持人最小化
您好所有专家,我尝试使用 VBA 脚本设置如上所述的自动下载,但目标文件夹中没有保存任何内容。 我在 Outlook 2007 和 Outlook 2010 上进行了尝试,并确保该文件夹具有所有必要的权限。 但仍然没有保存任何附件。 谁可以帮我这个事? 干杯斯坦利
赤柱
该评论由网站上的主持人最小化
在 Outlook 2013 上,“运行脚本”选项不可用我可以做任何其他事情来保存电子邮件中的附件而不使用 Kutools
恩德苏萨
该评论由网站上的主持人最小化
如果缺少“运行脚本”选项,那是因为自几个月前的安全更新以来,默认情况下它已被阻止。 在这里查看更多信息: https://www.slipstick.com/outlook/rules/outlook-2016-run-a-script-rules/
沃伦数据库
该评论由网站上的主持人最小化
嗨,脚本工作正常......但想从子文件夹中提取 PDF,而不是从主收件箱中。 有没有办法改变剧本?
先感谢您 !
埃里克 VT
该评论由网站上的主持人最小化
嗨埃里克,
下面的 VBA 脚本将保存邮件文件夹中的所有 PDF 附件。 对于从某个文件夹保存,您可以在手动运行规则时指定文件夹。


公共子 SaveAttachmentsToDisk(EmailItem As Outlook.MailItem)
将 xAttachment 变暗为 Outlook.Attachment
将 xDotPos 调暗为整数
将 xSavePath 调暗为字符串,将 xFileType 调暗为字符串
xSavePath = "C:\Users\DT168\Documents\outlook-attachments\"
对于 EmailItem.Attachments 中的每个 xAttachment
xDotPos = InStrRev(xAttachment.DisplayName, ".")
xFileType = Mid(xAttachment.DisplayName, xDotPos, Len(xAttachment.DisplayName) - xDotPos + 1)
如果 xFileType = ".pdf" 那么
xAttachment.SaveAsFile xSavePath &amp; xAttachment.DisplayName
结束如果
下一页
END SUB
技术支持
该评论由网站上的主持人最小化
您好,是否有用于 CSV 附件的 VBA 脚本。 我目前有自动进入 Outlook 中命名文件夹的报告作业,我现在希望文件夹中的那些文件自行提取并进入我桌面上的相应文件夹。 希望这是有道理的。 请帮忙! 我对 VBA 很陌生。
雷纳多·帕尔多
该评论由网站上的主持人最小化
我已经完成了所有脚本以从 Outlook 邮件中下载附件,并且当我手动运行它时我的脚本工作正常。 我想使用 Rule 选项自动执行该过程。 但是我在规则向导窗口中看不到我的宏。 我也在注册表中启用了以下选项
HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 16.0 \ Outlook \ Security
DWORD:EnableUnsafeClientMailRules
价值:1

但我仍然无法在规则向导列表中看到我的宏。 我的规则向导列表是空的,但我已经创建了宏并且它的手动工作正常。 我必须在我的规则向导中引入宏来自动化这个过程。 如果您有任何想法,请帮助我!
迪内什
这里还没有评论
加载更多
留下你的意见
以访客身份发帖
×
评价此帖子:
0  产品特性
建议地点