我已经看到这个问题发表了几次,但是经过广泛的看法,我没有找到成功的答案。
我正在尝试为Outlook创建一个脚本,该脚本将带有附件回到发件人的电子邮件中,并带有更新的消息,其中包括原始附件。一切都在工作,除了我做什么,我无法转发附件。如果我只是使用。forward,则不包括附件。如果我尝试使用.Attachment属性,它会打破脚本。
代码:
Sub ForwardEmail(Item As Outlook.MailItem)
With Item.Forward
.Attachments.Add Item.Attachment
.Subject = ("APPROVED - ") & Item.Subject
.Recipients.Add Item.SenderEmailAddress
.Body = "Your timesheet has been approved." & vbCrLf & Item.Body
.Send
End With
End Sub
Microsoft Outlook(以及其他电子邮件引擎(例如Gmail,Yahoo))以这种方式进行了设计:
- 回复邮件时,接收器不需要与接收器在输出箱中已有的附件(除非已删除)。它也节省了服务器和网络带宽上的存储空间。
- 当邮件转发时,预计通常至少是新用户,因此所有内容都保持原样(即未删除附件)
因此,请使用此代码。它遵循上面提到的规则#2,即每当您转发电子邮件时,附件都会自动附加。
Sub ForwardEmail(item As Outlook.MailItem)
Dim oMail As MailItem
On Error GoTo Release
If item.Class = olMail Then
Set oMail = item.Forward
oMail.Subject = ("APPROVED - ") & Item.Subject
oMail.HTMLBody = "Your timesheet has been approved." & vbCrLf & oMail.HTMLBody
oMail.Recipients.Add Item.SenderEmailAddress
oMail.Save
oMail.Send
End If
Release:
Set oMail = Nothing
Set oExplorer = Nothing
End Sub