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

Adding the default signature to Outlook email

我有一个应用程序可以填写 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 语句将失败。有没有办法规避这个?

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

HTMLBody Property

合作

The property Returns or sets a String representing the HTML body of the specified item. The HTMLBody property should be an HTML syntax string. Read/write.