Добавление стандартной подписи в Outlook Mail с помощью Visual Basic

Я пытаюсь отправить электронное письмо с помощью Visual Basic, но Outlook удаляет мою подпись при создании письма. Это мой код до сих пор:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


            Dim oApp As Outlook.Application = New Outlook.Application
            Dim mailItem As Outlook.MailItem = oApp.CreateItem(Outlook.OlItemType.olMailItem)

            mailItem.Subject = "Abgabe " + pnamebox.Text + " " + vnummerbox.Text
            mailItem.To = ""
            mailItem.CC = ""
            mailItem.Body = pnamebox.Text
            mailItem.GetInspector.Display()
            mailItem.Importance = Outlook.OlImportance.olImportanceNormal
            mailItem.Display(True)
            mailItem = Nothing
            oApp = Nothing      

    End Sub

Я очень новичок в Visual Basic и ценю любую помощь.

Максимум


person max07    schedule 05.12.2016    source источник


Ответы (1)


В основном дубликат этого? Вставка подписи в электронную почту Outlook из Excel VBA

В любом случае я отмечу, что, по моему опыту, мне нужно было, чтобы mailItem.Display вызывался первым в последовательности, чтобы подпись сохранялась правильно. Кроме того, установка значения true не делает его видимым, это параметр, который делает так, что вы не можете щелкнуть приложение Outlook, когда открыто окно электронной почты. Если вы не собирались это делать, вероятно, можно оставить значение по умолчанию false, что позволяет вам щелкнуть Outlook, когда открыто окно электронной почты.

Dim oApp As Outlook.Application = New Outlook.Application
Dim mailItem As Outlook.MailItem = oApp.CreateItem(Outlook.OlItemType.olMailItem)

dim mySignature as string

with mailItem
.Display 
.Subject = "Abgabe " & pnamebox.Text & " " & vnummerbox.Text
.To = ""
.CC = ""
mySignature = .HTMLBody
.HTMLBody = pnamebox.Text & mySignature
end with

Также вы заметите, что я использовал HTMLBody вместо Body. Если ваша подпись имеет какой-либо вид форматирования (большинство подписей деловой электронной почты, которые я вижу), вы захотите использовать HTMLBody, чтобы сохранить форматирование. Это означает, что вам может понадобиться добавить некоторые основные HTML-теги вокруг любого текста, который вы помещаете в тему, чтобы он отображался так, как вы хотите, но вы можете сделать это, просто добавив их в виде строк в свой HTMLBody.

.HTMLBody = "<p>" & pnamebox.Text & "</p>" '(etc...)
person Wedge    schedule 05.12.2016
comment
Спасибо за это. Я бился головой о стену, чтобы сделать это, но первый трюк с дисплеем работает! - person Glenn Sullivan; 17.10.2019