Как отправить электронное письмо в формате HTML

#vba #outlook

#vba #outlook

Вопрос:

Я использую предложение kmote из этого ответа (https://superuser.com/questions/635094 /) для отправки сообщения.

У меня есть изображения и форматирование текста в моем теле. Сообщение отформатировано в текстовом режиме. Есть ли какой-либо способ преобразовать его в формат HTML, чтобы оно было таким же, как при моей встрече?

 Private Sub Application_Reminder(ByVal Item As Object)
  Dim objMsg As MailItem
  Set objMsg = Application.CreateItem(olMailItem)

If Item.MessageClass <> "IPM.Appointment" Then
  Exit Sub
End If

If Item.Categories <> "Automated Email Sender" Then
  Exit Sub
End If

  objMsg.To = Item.Location
  objMsg.Subject = Item.Subject
  objMsg.Body = Item.Body
  objMsg.Send

  Set objMsg = Nothing
End Sub
  

Комментарии:

1. Установите формат тела: learn.microsoft.com/en-us/office/vba/api /…

Ответ №1:

.Body — это текстовое тело. Если вы хотите скопировать текст Html, попробуйте:

 objMsg.HtmlBody = Item.HtmlBody
  

Комментарии:

1. Ошибка времени выполнения ‘438’: объект не поддерживает это свойство или метод.

2. @пользователь7202022. objMsg это почтовый элемент, который определенно имеет текст Html. Что такое Item ?

3. это правильно objMsg.HtmlBody = Item.Body работает. Элемент — это назначение, из которого берется тело. Я предполагаю, что у назначения нет основной версии HTML? Вот почему это не работает?

4. @user7202022 Со времени моего последнего комментария я увидел, чем Item является IPM.Appointment . Я не могу найти никакой полезной документации по этому классу. Если я правильно понимаю ваш комментарий, Item.Body это Html-строка. Вы правы, AppointmentItem имеет только текстовое тело, но поскольку оба тела являются строками, вы можете поместить Html-строку в текстовое тело. Вы получили то, что хотите, или Item.Body текст вашего сообщения отформатирован не так, как вам нужно?