我有一个.NET应用程序,允许用户单击一个按钮,该按钮将在Outlook中启动新的预先填充的消息。这在大多数情况下都很有效,只有一个小例外。如果用户在发送邮件时没有打开Outlook,则邮件将进入其发件箱,直到他们实际启动主Outlook应用程序。只有这样才能真正发生发送/接收。
以下是我用来创建MailItem
的代码片段:
Dim mailItem As Outlook.MailItem = Me.OutlookApplication.CreateItem(Outlook.OlItemType.olMailItem)
mailItem.To = "test@test.com"
mailItem.Subject = "Some Subject"
mailItem.HTMLBody = "Some Text"
mailItem.Display(False)
我也加入了ItemSend
的{{1}}事件,因此我可以看到当用户点击Outlook.Application
中的Send
时,Outlook成功加注事件。
如果用户启动邮件时Outlook未运行,则会生成新的OUTLOOK.EXE进程。在任何一种情况下,系统托盘中都会出现一个图标,表示Outlook已连接到外部应用程序。
我是否有可能以某种方式使用Interop触发发送/接收,因此我可以确保在不要求用户单独打开Outlook的情况下发送消息?
答案 0 :(得分:1)
尝试使用Namespace.SendAndReceive
请记住,邮件提交是异步的,因此您需要保持Outlook.Application处于活动状态,直到发送/接收完成。