Как автоматически пересылать больше, чем электронная почта из электронной почты Outlook с вложениями от отправителя при доставке электронной почты - PullRequest
1 голос
/ 25 мая 2019

Я пытаюсь создать сценарий, используя 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

Примечание: мне не нужно делать пересылку вручную. Просто, когда кто-то отправляет электронное письмо, я хочу переслать его более чем на электронную почту автоматически.не хочу нажимать вперед что-то вроде автоматизации пересылки при получении электронной почты. Я только что открыл свой внешний вид и встал на электронную почту, которая была в папке «Входящие», и запустил макрос, но ничего не произошло

1 Ответ

2 голосов
/ 26 мая 2019

Вы можете попробовать что-то вроде этого. Когда вы получаете новую почту и пересылаетесь, ожидается, что пересылаемая почта, как правило, отправляется как минимум новому пользователю, и, следовательно, весь контент остается как есть (то есть вложения не удаляются).

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
...