我正在尝试使用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
我对视觉基础很新,并感谢任何帮助。
最高
答案 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