如何在邮件发送后自动从“已发送邮件”中删除附件?
当发送带有附件的邮件时,默认情况下,这些附件会随邮件一起存储到“已发送邮件”文件夹中。为了减小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. 从现在开始,当您发送带有附件的邮件时,附件将自动从“已发送邮件”中删除,如下图所示:

注意:此代码仅适用于默认数据账户。
最佳 Office 办公效率工具
重磅消息:Kutools for Outlook 推出免费版本!
体验全新 Kutools for Outlook 免费版,70 多个强大功能,永久免费使用!点击立即下载!
🤖 Kutools AI :利用先进的AI技术轻松处理邮件,包括答复、总结、优化、扩展、翻译和撰写邮件。
📧 邮件自动化:自动答复(支持POP和IMAP) /计划发送邮件 /发送邮件时根据规则自动抄送密送 / 自动转发(高级规则) / 自动添加问候语 / 自动将群发邮件拆分为单独邮件 ...
📨 邮件管理:撤回邮件 / 按主题等方式阻止诈骗邮件 / 删除重复邮件 / 高级搜索 / 整合文件夹 ...
📁 附件专家:批量保存 / 批量拆离 / 批量压缩 / 自动保存 / 自动拆离 / 自动压缩 ...
🌟 界面魔法:😊更多精美个性表情 /重要邮件来临时提醒您 / 最小化而非关闭 Outlook ...
👍 一键高效操作:带附件全部答复 /反钓鱼邮件 / 🕘显示发件人时区 ...
👩🏼🤝👩🏻 联系人与日历:从选中的邮件批量添加联系人 / 将联系人组拆分为多个独立组 / 移除生日提醒 ...
使用 Kutools,支持英语、西班牙语、德语、法语、中文及40 多种其他语言,满足您的语言偏好!
一键解锁 Kutools for Outlook。无需等待,立即下载,提升办公效率!

