【发布时间】: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