我有一个应用程序,它将填写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语句将失败。有没有办法规避这个?
答案 0 :(得分:1)
使用 HTMLBody Property
属性返回或设置表示指定项的HTML正文的String。 HTMLBody属性应该是HTML语法字符串。读/写。
答案 1 :(得分:0)
无需执行任何操作 - 如果您在此之前不设置Body或HTMLBody属性,则在调用Display时会自动添加签名。