将默认签名添加到Outlook电子邮件中

时间:2017-04-12 18:03:55

标签: vba vb.net outlook office-interop outlook-vba

我有一个应用程序,它将填写Outlook电子邮件的To / Subject / Body:

Dim App As New Outlook.Application
Dim MailItem As Outlook._MailItem = DirectCast(App.CreateItem(Outlook.OlItemType.olMailItem), Outlook._MailItem)


Dim appDataDir As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\Microsoft\Signatures"
Dim Signature As String = String.Empty
Dim diInfo As New DirectoryInfo(appDataDir)

If diInfo.Exists Then
    Dim fiSignature As FileInfo() = diInfo.GetFiles("*.htm")
        If fiSignature.Length > 0 Then
            Dim sr As New StreamReader(fiSignature(0).FullName, Encoding.[Default])
            Signature = sr.ReadToEnd()

            If Not String.IsNullOrEmpty(Signature) Then
                Dim fileName As String = fiSignature(0).Name.Replace(fiSignature(0).Extension, String.Empty)
                Signature = Signature.Replace(fileName & Convert.ToString("_files/"), (Convert.ToString(appDataDir & Convert.ToString("/")) & fileName) + "_files/")
            End If
        End If
End If

With MailItem
    .To = "asdf"
    .Subject = "asdf"
    .Body = txtTemplatePreview.Text & vbNewLine
End With
MailItem.Display(True)

因此,第一个If Then语句的功能是将我的默认签名附加到电子邮件的末尾。但是,运行此代码时,附加的签名看起来是HTML代码而不是签名本身。

另外,我被告知如果用户有多个签名,第一个If Then语句将失败。有没有办法规避这个?

2 个答案:

答案 0 :(得分:1)

使用 HTMLBody Property

  

属性返回或设置表示指定项的HTML正文的String。 HTMLBody属性应该是HTML语法字符串。读/写。

答案 1 :(得分:0)

无需执行任何操作 - 如果您在此之前设置Body或HTMLBody属性,则在调用Display时会自动添加签名。