如何在邮件发送后自动从“已发送邮件”中删除附件?
当发送带有附件的邮件时,默认情况下,这些附件会随邮件一起存储到“已发送邮件”文件夹中。为了减小PST文件的大小,您可能希望在邮件发送后自动从“已发送邮件”中删除附件。本文将介绍如何在Outlook中完成此任务。
在邮件发送后自动从“已发送邮件”中删除附件
以下VBA代码可以帮助您在邮件发送后自动删除Outlook中的附件,请按照以下步骤操作:
1. 按住“ALT” + “F11”键打开“Microsoft Visual Basic for Applications”窗口。
2. 在“Microsoft Visual Basic for Applications”窗口中,双击“Project1(VbaProject.OTM)”窗格中的“ThisOutlookSession”以打开模块,然后将以下代码复制并粘贴到空白模块中。
VBA代码:在邮件发送后自动从“已发送邮件”中删除附件:
Public WithEvents SentMailItems As Outlook.Items
Private Sub Application_Startup()
Set SentMailItems = Outlook.Application.Session.GetDefaultFolder(olFolderSentMail).Items
End Sub
Sub SentMailItems_ItemAdd(ByVal Item As Object)
Dim xSentMail As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xAttachment As Outlook.Attachment
Dim xAttachmentInfo As String
On Error Resume Next
If Item.Class = olMail Then
Set xSentMail = Item
End If
Set xAttachments = xSentMail.Attachments
For i = xAttachments.Count To 1 Step -1
Set xAttachment = xAttachments.Item(i)
xAttachmentInfo = "<HTML><BODY>" & xAttachment.DisplayName & _
"</BODY></HTML>" & vbCrLf & xAttachmentInfo
xAttachment.Delete
Next
xSentMail.HTMLBody = "<HTML><BODY><font color=#FF0000>Attachment Removed: </font><br/></BODY></HTML>" & _
xAttachmentInfo & "<HTML><BODY><br/></BODY></HTML>" & xSentMail.HTMLBody
xSentMail.Save
End Sub

3. 插入上述代码后,请重新启动Outlook以使代码生效。
4. 从现在开始,当您发送带有附件的邮件时,附件将自动从“已发送邮件”中删除,如下图所示:

注意:此代码仅适用于默认数据账户。
最佳办公生产力工具
重磅消息:Kutools for Outlook 推出免费版本!
体验全新 Kutools for Outlook 免费版本,拥有 70 多项令人惊叹的功能,永久免费使用!立即点击下载!
🤖 Kutools AI :利用先进的人工智能技术轻松处理电子邮件,包括回复、总结、优化、扩展、翻译和撰写邮件。
📧 邮件自动化:自动答复(支持 POP 和 IMAP) / 定时发送邮件 / 按规则自动抄送密送 / 自动转发(高级规则) / 自动添加问候语 / 自动将多收件人邮件拆分为单独消息 ...
📨 邮件管理:撤回邮件 / 按主题和其他条件阻止垃圾邮件 / 删除重复邮件 / 高级搜索 / 整合文件夹 ...
📁 附件增强功能:批量保存 / 批量拆离 / 批量压缩 / 自动保存 / 自动拆离 / 自动压缩 ...
🌟 界面魔法:😊更多漂亮酷炫的表情符号 / 当重要邮件到达时提醒您 / 最小化 Outlook 而不是关闭 ...
👍 一键奇效:带附件回复所有人 / 反钓鱼邮件 / 🕘显示发件人的时区 ...
👩🏼🤝👩🏻 联系人和日历:从选定的邮件中批量添加联系人 / 将联系人组拆分为单独的组 / 移除生日提醒 ...
单击即可立即解锁 Kutools for Outlook。不要再等待,现在就下载并提升您的效率!

