【问题标题】:Adding the default signature to Outlook email将默认签名添加到 Outlook 电子邮件
【发布时间】:2017-09-08 15:40:57
【问题描述】:

我有一个将填写 Outlook 电子邮件的收件人/主题/正文的应用程序:

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 语句将失败。有没有办法绕过这个?

【问题讨论】:

  • 使用 - .HTMLBody
  • @0m3r 就是这样!谢谢!我很乐意将您的评论标记为答案,那么您可以将其发布为回复吗?
  • 啊。射击。原来我做的 .HTMLBody 弄乱了格式。我会更新原帖。
  • 知道了!想通了。

标签: vba vb.net outlook office-interop


【解决方案1】:

HTMLBody Property

合作

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

【讨论】:

    【解决方案2】:

    没有必要这样做 - 如果您在此之前设置 Body 或 HTMLBody 属性,则调用 Display 时会自动添加签名。

    【讨论】:

    • 是的,这是真的 - 我已经尝试过了,但在调用显示后无法添加电子邮件正文。你知道有什么办法吗?
    • 您需要合并现有的邮件正文(带有新添加的签名)和新文本。您可以使用 Word 对象模型 (MailItem.GetInspector.WordEditor) 或通过读取 HTMLBody 属性并在 body 标记后插入数据,然后将 HTMLBody 设置回来。
    猜你喜欢
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 2015-11-19
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    相关资源
    最近更新 更多