Как мне дублировать / копировать Outlook MailItem - PullRequest
0 голосов
/ 14 января 2019

У меня есть пользователь, который отправляет eMails в большой список «Кому», иногда более 20 адресов. При таком большом списке "To" полученная почта иногда попадает в папку СПАМ получателя. Очевидно, мы бы хотели этого избежать.

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

Я не уверен, как скопировать MailItem из оригинала в новый MailItem. Цикл Excel работает нормально.

Вот мой сокращенный макрос:

Option Explicit
Sub Send_emails()
'.
'.
Set objDoc = objInspector.WordEditor
Set objWrdApp = objDoc.Application
Set objSelection = objWrdApp.Selection
'Loop through the Rows in the worksheet.  Start at row 2 to ignore header
For lngCurrSheetRow = 2 To lngLastSheetRow
    strEmailAddress = objWorksheet.Cells(lngCurrSheetRow, 1).Value
    'Set objNewMail so that the new message is created and can be referenced.
    Set objNewMail = Application.CreateItem(0)
    With objNewMail
        .Body = objSelection
        .To = strEmailAddress
    End With
Next lngCurrSheetRow
'.
'.
End Sub

1 Ответ

0 голосов
/ 14 января 2019

Для копирования mailitem.body Пример будет

Option Explicit
Sub Send_emails()

        Dim olMsg As Outlook.MailItem
        Set olMsg = ActiveExplorer.Selection.Item(1)

        Dim objNewMail As Outlook.MailItem
        Set objNewMail = Application.CreateItem(0)

        With objNewMail
            .Body = olMsg.Body
            .Display
        End With
End Sub

Для HTML Body просто сделайте HTMLBody = olMsg.HTMLBody

...