Метод Outlook.MailItem.Send продолжает удалять исходную электронную почту при использовании в макросе VBA.как предотвратить это? - PullRequest
0 голосов
/ 08 октября 2018

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

Как предотвратить удаление сообщения?Я просто хочу копию в папку "отправленные предметы".Я не хочу удалять исходное сообщение.

Вот макрос:

Sub ResendThis()

Dim objSelection   As Outlook.Selection
Dim myItem         As Outlook.MailItem
Dim objActionsMenu As Office.CommandBarControl
Dim olResendMsg    As Outlook.MailItem

Set objSelection = Application.ActiveExplorer.Selection

On Error Resume Next

For Each myItem In objSelection
    myItem.Display
    Set olResendMsg      = Application.ActiveInspector.CurrentItem
    olResendMsg.Subject  = "EMAIL RESEND TEST"
    olResendMsg.HTMLBody = "EMAIL CONTENT" & myItem.HTMLBody
    olResendMsg.Send
    myItem.Close olDiscard
Next

Set myItem = Nothing
Set objActionsMenu = Nothing
Set olResendMsg = Nothing

End Sub

Метод «Отправить» иногда перемещает сообщение в папку «отправленные элементы», а иногда и сообщениепросто исчезает.

1 Ответ

0 голосов
/ 08 октября 2018

Как сказал Techno, вы можете использовать olResendMsg = myItem.Copy и затем завершить обработку на основе olResendMsg

. Вы можете обратиться к приведенному ниже коду:

Sub ResendThis()

Dim objSelection   As Outlook.Selection
Dim myItem         As Outlook.MailItem
Dim objActionsMenu As Office.CommandBarControl
Dim olResendMsg    As Outlook.MailItem
Set objSelection = Application.ActiveExplorer.Selection

On Error Resume Next

For Each myItem In objSelection
    myItem.Display
    Set olResendMsg = myItem.Copy
    olResendMsg.subject = "EMAIL RESEND TEST"
    olResendMsg.HTMLBody = "EMAIL CONTENT" & myItem.HTMLBody
    olResendMsg.To = "text@outlook.com"
    olResendMsg.CC = ""
    olResendMsg.Send
    myItem.Close olDiscard

Next

Set myItem = Nothing
Set objActionsMenu = Nothing
Set olResendMsg = Nothing

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...