2013-12-13 4 views
1

У меня есть конкретный пользователь, который действительно хочет перенаправить любое электронное письмо другим людям в своем отделе, чтобы, когда тот человек отвечает на письмо, он вернется к человеку, который изначально Отправь это.Outlook VBscript для пересылки писем в папке

Мы не можем предоставить им разрешения на отправку как всех, потому что не все пользователи являются внутренними, поэтому я пытаюсь запустить VBScript в Outlook, который будет отправлять все электронные письма в указанной папке, но изменить адрес ответа так, чтобы им не нужно вручную ставить их каждый раз.

Я довольно новичок в сценариях VB, поэтому это, вероятно, что-то довольно основное, что мне не хватает.

Это то, что я пытаюсь, но он не работает:

Sub SendFolder() 
    Dim olApp As Outlook.Application 
    Dim olNS As Outlook.NameSpace 
    Dim MyFolder As Outlook.MAPIFolder 
    Dim ObjMail As Outlook.MailItem 

    Set olApp = Outlook.Application 
    Set olNS = olApp.GetNamespace("MAPI") 
    Set MyFolder = Application.Session.Folders("[email protected]").Folders("test") 

    For i = MyFolder.Items.Count To 0 Step -1 
     Set ObjMail.Subject = MyFolder.Itmes(i).Subject 
     Set ObjMail.ReplyRecipients = MyFolder.Itmes(i).ReplyRecipients 
     Set ObjMail.Body = MyFolder.Itmes(i).Body 
     Set ObjMail.Attachments = MyFolder.Itmes(i).Attachments 
     Set ObjMail.BodyFormat = MyFolder.Itmes(i).BodyFormat 
     Set ObjMail.To = "[email protected]" 
     ObjMail.Send 
    Next 
End Sub 

ответ

2

Вы отсутствуют

Set ObjMail = Application.CreateItem (olMailItem)

Тогда ваш код станет

With ObjMail 
    .Subject = MyFolder.Itmes(i).Subject 
    .ReplyRecipients = MyFolder.Items(i).ReplyRecipients 
    .Body = MyFolder.Items(i).Body 
    .Attachments = MyFolder.Items(i).Attachments 
    .BodyFormat = MyFolder.Items(i).BodyFormat 
    .To = "[email protected]" 
    .Send 
End with 

Это бежит теперь, ReplyTo не меняется.

Вы хотите установить ReplyRecipients в ObjMail по свойству

Что-то вроде .ReplyRecipients.Add MyFolder.Items (I) .SenderEmailAddress

Чтобы упростить проблему, .forward почту как есть, и установить только свойство ReplyRecipients.

Проверьте этот вариант. Почта отправляется как вложение. Ресивер автоматически отвечает исходному отправителю.

Непроверено

Sub SendFolderItemsAsAttachments() 

' Run this VBA code while in Outlook 

Dim MyFolder As MAPIFolder 
Dim notMyItems as Items 
Dim notReplyingToMe as mailitem 

Dim i as long 

Set MyFolder = Application.Session.Folders("[email protected]").Folders("test") 

Set notMyItems = MyFolder.Items 

For i = notMyItems.Count To 1 Step -1 

    If TypeOf notMyItems(i) Is MailItem Then 

     Set notReplyingToMe = Application.CreateItem(olMailItem) 

     With notReplyingToMe 

      .Subject = notMyItems(i).Subject & " - " & _ 
         notMyItems(i).SenderName 
      .HTMLBody = "Redirecting for your action." 
      .Attachments.Add notMyItems(i), olEmbeddeditem 
      .To = "[email protected]" 
      .Send 

     End With 

     notMyItems(i).Delete 

    End If 

Next 

Set MyFolder = = Nothing 
Set notMyItems = Nothing 
Set notReplyingToMe = Nothing 

End Sub 
Смежные вопросы