如何在有表格的地方引用草稿电子邮件?

How to reference draft email where there are forms?

用户创建了一封电子邮件,然后单击“发送”按钮,将出现一个表单,其中包含发送选项。
一种选择是发送电子邮件,收件人将在他们的手机 phone 上收到消息。当他选择这个选项时,会出现另一个表格来输入手机号码并用表格上的按钮确认提交。

接收当前草稿电子邮件时出现问题Set objMail = Application.ActiveInspector.CurrentItem 生成错误消息

Object variable or With block variable not set

没有表单代码有效。

1] 第一种形式从 ThisOutlookSession

调用
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    FormSending.Show
End Sub

ButtonSend 代码和调用模块 SendWithSms

中的主函数
Private Sub ButtonSend_Click()
    Dim intDelta As Integer

    Call SendWithSms
    
    blnContinue = True
    Unload Me
End Sub

2] 第二个表单在表单文件夹中,从函数 SendWithSms

中调用
'....
    User_form.Show
        
    If blnContinue = False Then
        Exit Sub
    End If

    .Send
End With
'....

是否可以在有表格的地方识别要发送的电子邮件消息?

您可以在自定义表单中使用一个参数定义 Show 方法,该参数可以传递显示该表单的 Outlook 项目的实例,这样您就可以立即传递它:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
   If TypeName(Item) = "MailItem" Then
     FormSending.Show Item
   End If
End Sub

解决方案:

ThisOutlookSession添加这部分代码

Public objMail As Outlook.mailItem

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
      Dim objMail As Outlook.mailItem
      Dim CurrentItem As Object
    
      Set objMail = Application.ActiveInspector.CurrentItem

      FormSending.Show

End Sub