VB.net 2005使用Outlook 2003发送电子邮件

时间:2010-07-28 22:48:36

标签: vb.net outlook-object-model

我们目前使用以下代码在Outlook中创建电子邮件,以便用户可以在Outlook中键入他们想要的内容,然后在发送电子邮件时,系统会提示他们是否要保存电子邮件。< / p>

            Dim objOutlook As Object
            Dim objMessage As Object
            Dim objInspector As Object

            If strEMail <> "" Then
                objOutlook = CreateObject("Outlook.Application")
                objMessage = objOutlook.CreateItem(0)
                objMessage.To = strEMail

                objInspector = objMessage.GetInspector
                objInspector.Display()

                While Not objInspector.CurrentItem Is Nothing
                End While

                frmSaveSentEmail.BringToFront()
                frmSaveSentEmail.ShowDialog()

只要不使用Word作为电子邮件编辑器,代码在Outlook 2003上运行正常。但是,将Word设置为电子邮件编辑器时,测试以查看电子邮件对象是否已关闭的while循环永远不会结束。

有没有办法以不同的方式处理它,以便即使使用Word作为编辑器也可以使用它?

2 个答案:

答案 0 :(得分:0)

我对通过VB.NET编程Outlook的经验并不十分,但是这个循环当然看起来很可疑。也许您应该尝试利用检查员的Close event而不是反复检查其CurrentItem属性。如果我没有弄错,你应该能够在事件处理程序中显示你的对话框。

答案 1 :(得分:0)

结束将循环更改为:

  While Not objOutlook.ActiveInspector Is Nothing
  End While

这解决了这个问题。