0

我有一个 .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事件Outlook.Application,所以我可以看到当用户从 中单击SendMailItem,Outlook 成功引发了事件。

如果用户启动邮件时 Outlook 未运行,则会生成一个新的 OUTLOOK.EXE 进程。无论哪种情况,系统托盘中都会出现一个图标,表示 Outlook 已连接到外部应用程序。

我是否可以使用 Interop 以某种方式触发发送/接收,这样我就可以确保发送消息而无需用户单独打开 Outlook?

4

1 回答 1

1

尝试使用 Namespace.SendAndReceive

请记住,消息提交是异步的,因此您需要保持 Outlook.Application 处于活动状态,直到发送/接收完成。

于 2013-02-22T16:47:37.030 回答