Добавлять приветствие, когда получатели вводят новое письмо - PullRequest
0 голосов
/ 04 февраля 2020

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

Например, следует проверить поле «Кому» и, если есть адрес электронной почты, взять имя из контакт и заполните тело сообщения (например, Уважаемый [Имя], ).

Я не знаю, какой метод или событие использовать, если я нажму Новое сообщение и какой метод или событие использовать, чтобы увидеть, добавлен ли получатель. (Макрос должен запускаться каждый раз, когда добавляется получатель.) Если получателей больше, чем два, должно быть «Привет всем»

. Для ответа я использую событие «Ответ», которое происходит, когда пользователь выбирает действие ответа.

Private Sub GMailItem_Reply(ByVal Response As Object, Cancel As Boolean)
    AutoAddGreetingToReply Response
End Sub

Это находит имя получателя и добавляет приветствие к ответному сообщению.

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

Option Explicit
Public Sub MailMergeAttachments()
    Dim Session As Outlook.NameSpace
    Dim currentExplorer As Explorer
    Dim Selection As Selection
    Dim oContact As ContactItem
    Dim oMail As MailItem
    Dim attach As Attachment
    Dim obj As Object
    Dim oWord As Word.Application
    Dim oDoc As Word.Document
    Dim tmp As String
    ' Uses current user's profile
    Dim enviro As String
    enviro = CStr(Environ("USERPROFILE"))

    ' Get Word
    Set oWord = GetObject(, "Word.Application")

Set oDoc = oWord.Documents(1)
 tmp = oDoc.FullName
 oDoc.Activate

oWord.Visible = True

    Set currentExplorer = Application.ActiveExplorer
    Set Selection = currentExplorer.Selection

  If Not TypeOf Selection.Item(1) Is Outlook.ContactItem Then
  MsgBox "You need to select Contacts first!"
  Exit Sub
  End If

For Each obj In Selection

'Test for ContactGroups
 If TypeName(obj) = "ContactItem" Then
 Set oContact = obj

Dim mText As String
Dim f As Word.Field

For Each f In oDoc.Fields

  If f.Type = wdFieldMergeField Then

 ' match Word mergefields with Outlook fields
      Select Case f.Code
       Case " MERGEFIELD First "
       mText = oContact.FirstName

       Case " MERGEFIELD Last "
       mText = oContact.LastName

       Case " MERGEFIELD Company "
       mText = oContact.CompanyName

       End Select

     f.Result.Text = mText
 End If
Next

Set oMail = Application.CreateItem(olMailItem)

With oMail
    .To = oContact.Email1Address
    .Subject = Left(oDoc.Name, Len(oDoc.Name) - 5)
    'The content of the document is used as the body for the email
    .Body = oDoc.Content
    .Attachments.Add enviro & "\Documents\instructions.pdf"
    .Display ' .send
End With

 End If
    Next
    Set oWord = Nothing
    Set Session = Nothing
    Set currentExplorer = Nothing
    Set obj = Nothing
    Set Selection = Nothing

End Sub

Как запустить макрос, когда я выбираю новое сообщение, и как многократно запускать его при вводе нового получателя / получателей и добавлении персонализированного приветствия в теле сообщения?

...