Тело не появляется при отправке писем outlook с подписью в макросе excel - PullRequest
0 голосов
/ 18 ноября 2018

Поскольку я новичок в VBA, я пытаюсь структурировать код для отправки электронной почты через outlook с подписью. Но когда я запускаю приведенный ниже код, отображается только подпись (тело не отображается).

Когда я использую «F8» и проверяю, ясно видно, что мое тело появляется, тогда подпись заменяет его. Как это исправить?

Option Explicit

Sub SendEmailwithsign()
Dim objoutApp As Object, objoutmail As Object
Dim strbody As String, strSig As String

Set objoutApp = CreateObject("outlook.Application")
Set objoutmail = objoutApp.CreateItem(0)
On Error Resume Next
With objoutmail
  .To = "AAAAAAAAA@.com"
  .CC = ""
  .Subject = "Test mail"
  .Recipients.ResolveAll
  .Display                 'body appears until this point'

  strSig = .Environ("appdata") & "Microsoft\Signatures\bbbb.txt"

  strbody = "Hello"
  .body = strbody & strSig     'with this step Body part does not appear but only the signature'

  End With
   On Error GoTo 0
   Set objoutmail = Nothing
   Set objoutApp = Nothing

End Sub

1 Ответ

0 голосов
/ 19 ноября 2018

Вам необходимо изменить .body на .HTMLBody, пожалуйста, используйте следующий код:

Option Explicit

Sub SendEmailwithsign()
Dim objoutApp As Object, objoutmail As Object
Dim strbody As String, strSig As String

Set objoutApp = CreateObject("outlook.Application")
Set objoutmail = objoutApp.CreateItem(0)
On Error Resume Next
With objoutmail
  .To = "emailAddress"
  .CC = ""
  .Subject = "Test mail"
   strSig = .Environ("appdata") & "Microsoft\Signatures\default.txt"
  strbody = "Hello"
  .HTMLBody = "<p>"+ strbody  +"</p>" & strSig     'with this step Body part does not appear but only the signature'
  .Recipients.ResolveAll
  .Display                 'body appears until this point'



  End With
   On Error GoTo 0
   Set objoutmail = Nothing
   Set objoutApp = Nothing

End Sub

Ссылка от:

Подпись VBA по электронной почте с HTMLBody

...