使用Visual Basic将标准签名添加到Outlook Mail

时间:2016-12-05 16:32:57

标签: vb.net email outlook signature

我正在尝试使用Visual Basic发送电子邮件,但Outlook在创建邮件时删除了我的签名。 到目前为止,这是我的代码:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


            Dim oApp As Outlook.Application = New Outlook.Application
            Dim mailItem As Outlook.MailItem = oApp.CreateItem(Outlook.OlItemType.olMailItem)

            mailItem.Subject = "Abgabe " + pnamebox.Text + " " + vnummerbox.Text
            mailItem.To = ""
            mailItem.CC = ""
            mailItem.Body = pnamebox.Text
            mailItem.GetInspector.Display()
            mailItem.Importance = Outlook.OlImportance.olImportanceNormal
            mailItem.Display(True)
            mailItem = Nothing
            oApp = Nothing      

    End Sub

我对视觉基础很新,并感谢任何帮助。

最高

1 个答案:

答案 0 :(得分:1)

大部分都是这个的重复? Inserting Signature into Outlook email from Excel VBA

在任何情况下,我都会注意到,根据我的经验,我必须让mailItem.Display成为序列中调用的第一件事,以便正确保存签名。将其设置为true并不是什么使其可见,这是一个选项,使您无法在电子邮件窗口打开时单击Outlook应用程序。除非您打算这样做,否则可以将其保留为默认值false,这样可以在电子邮件窗口打开时单击Outlook。

class MyTest: XCTestCase {
    func test() {
        let exp = expectation(description: "Expecting a call")
        let a = MyClass()
        a.delegate = MyMockDelegate(exp: exp)

        // Thread 1: EXC_BAD_ACCESS(code=1, address=0x40dedeadbec0)
        waitForExpectations(timeout: 10)
    }

    class MyMockDelegate: MyClassDelegate {
        let exp: XCTestExpectation

        init(exp: XCTestExpectation) {
            self.exp = exp
        }

        func goneWrong() {
            self.exp.fulfill()
        }
    }
}

另外,您会注意到我使用的是HTMLBody而不是Body。如果您的签名中包含任何格式(我看到的大多数商业电子邮件签名),您将需要使用HTMLBody来保留格式。这意味着您可能需要在放入主题的任何文本周围添加一些基本HTML标记,以使其显示为您想要的内容,但您可以通过在HTMLBody中将它们添加为字符串来实现这一点

Dim oApp As Outlook.Application = New Outlook.Application
Dim mailItem As Outlook.MailItem = oApp.CreateItem(Outlook.OlItemType.olMailItem)

dim mySignature as string

with mailItem
.Display 
.Subject = "Abgabe " & pnamebox.Text & " " & vnummerbox.Text
.To = ""
.CC = ""
mySignature = .HTMLBody
.HTMLBody = pnamebox.Text & mySignature
end with