Vba 如何在发送电子邮件时自动转发到outlook电子邮件中包含发件人附件的多封电子邮件

Vba 如何在发送电子邮件时自动转发到outlook电子邮件中包含发件人附件的多封电子邮件,vba,outlook,Vba,Outlook,我正在尝试使用vba创建一个脚本当一封特定的电子邮件发送到我的收件箱时,只需转发这封带有相同附件和正文的邮件,但只需更改主题并自动转发到一些电子邮件 我需要这些序列自动发送时,发件人给我的电子邮件 这是我的宏脚本 Private Sub Application_Startup() Set objInbox = Outlook.Application.Session.GetDefaultFolder(olFolderInbox) Set objInboxItems = objInbox.Items

我正在尝试使用vba创建一个脚本当一封特定的电子邮件发送到我的收件箱时,只需转发这封带有相同附件和正文的邮件,但只需更改主题并自动转发到一些电子邮件 我需要这些序列自动发送时,发件人给我的电子邮件 这是我的宏脚本

Private Sub Application_Startup()
Set objInbox = Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
Set objInboxItems = objInbox.Items
End Sub

Private Sub objInboxItems_ItemAdd(ByVal Item As Object)
Dim objMail As Outlook.MailItem
Dim objForward As Outlook.MailItem

If TypeOf Item Is MailItem Then
   Set objMail = Item

   'If it is a specific new email
   If (objMail.SenderEmailAddress = "someone@outlook.com") And 
(objMail.Importance = olImportanceHigh) And (objMail.Attachments.Count > 0) 
Then

       Set objForward = objMail.Forward
       'Customize the forward subject, body and recipients
       With objForward
            .Subject = "Custom Subject"
            .HTMLBody = "<HTML><BODY>Type body here. </BODY></HTML>" & 
objForward.HTMLBody
            .Recipients.Add ("someone@gmail.com")
            .Recipients.ResolveAll
            .Importance = olImportanceHigh
            .Send
       End With
   End If
End If
End Sub

Sub myAutoFW()

End Sub
专用子应用程序\u启动()
设置objInbox=Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
设置objInboxItems=objInbox.Items
端接头
私有子对象objInboxItems\u ItemAdd(ByVal项作为对象)
将objMail设置为Outlook.MailItem
Dim objForward As Outlook.MailItem
如果项目类型为MailItem,则
设置objMail=Item
“如果是一封特定的新电子邮件
如果(objMail.SenderEmailAddress=”someone@outlook.com)及
(objMail.Importance=oliimportancehigh)和(objMail.Attachments.Count>0)
然后
设置objForward=objMail.Forward
'自定义转发主题、正文和收件人
带objForward
.Subject=“自定义主题”
.HTMLBody=“在此处键入body。”&
objForward.HTMLBody
.Recipients.Add(“someone@gmail.com")
.Recipients.ResolveAll
.重要性=低重要性高
.发送
以
如果结束
如果结束
端接头
次myAutoFW()
端接头

注意:我不需要手动转发我只是想在有人发送电子邮件时转发而不是自动发送电子邮件我不想在收到电子邮件时按“自动转发”之类的按钮我刚刚打开outlook,站在收件箱中的电子邮件上运行宏,但没有发生任何事情

我可以试试这样的。当您收到新邮件并被转发时,预计转发的邮件通常至少会发送给新用户,因此所有内容保持原样(即不会删除附件)


为什么不简单地创建一个规则并将电子邮件转发给特定的人?您的问题是什么?@QuickSilver您的意思是创建一个规则并使用此宏转发邮件?@Tim Williams简单地说,当有人向我发送邮件时,我想转发带有相同附件的邮件,而不通过Macrover自动下载您的邮件有问题吗邮政编码?如果不是,您的具体问题是什么?你是如何使用你发布的代码的?非常感谢你的回答,但我想知道我可以把发件人的电子邮件放在哪里,这些邮件将被转发,请检查我的邮箱edit@MahmoudAl-Haroon不要更改你的问题或编辑它,因为无论谁最后读它都没有多大意义。关于emai,你只需要输入emai地址,如果上面写着email。。。因此,与其使用
someone@gmail.com
将您要发送的电子邮件地址放入。看,我有一封发件人邮件,我们称之为“发件人”,我需要用相同的附件转发他的邮件,但要更改主题和正文,这一点就可以了。现在我要转发发件人邮件,就像我说的那样,发送给多人电子邮件,好吗?假设这些人的电子邮件是“收件人”好的,现在我明白了,我可以把发件人的电子邮件放在这里oMail.Recipients.Add“someone@gmail.com“'此处的电子邮件地址,现在我可以将收件人的邮件放在哪里?我将从发件人oMail.Recipients.Add转发这些邮件”someone@gmail.com"'电子邮件地址here@MahmoudAl-Haroon请转到outlook并转发电子邮件,并观察其行为……将电子邮件转发给其他人将自动删除发件人的电子邮件……在
抄送
&
密件抄送
字段中,所有内容都将为空。唯一保持完整的字段将是主题还有附件。因此,当您在
oMail.Recipients.Add”下转发电子邮件时someone@gmail.com"
这将是接收电子邮件的新用户。我不需要手动转发我只想在有人发送电子邮件时转发而不是自动转发我不想按“转发”之类的按钮收到电子邮件时自动转发我刚刚打开outlook并站在收件箱和运行宏,但什么也没发生
Sub ForwardEmail(item As Outlook.MailItem)
  Dim oMail As MailItem    

  On Error GoTo ErrorHandler
  If oMail.Attachments.Count > 0 Then
   If item.Class = olMail Then
     Set oMail = item.Forward
     With oMail
        .Subject = .Subject 'Can change the subject here
        .HTMLBody = "Please find attached." & vbCrLf & .HTMLBody
        .Recipients.Add "someone@gmail.com" 'email address here
        .Save
        .Send
     End With
  End If
 End If
 ErrorHandler:
  Set oMail = Nothing
End Sub