在 MailItem.Send 中获取 MailItem - 事件处理程序
Getting MailItem in MailItem.Send - Event Handler
在我的代码中,我生成了一封电子邮件,然后将其显示给用户,以便他们可以在发送前对其进行编辑。他们完成编辑后,我想将编辑后的电子邮件存储为文件,但发送后我不知道如何访问它。最合乎逻辑的方法似乎是对发送事件做出反应,以便在用户发送后立即存储它:
Dim oMail As Outlook.MailItem
'Fill oMail
oMail.Display()
AddHandler oMail.Send, AddressOf MailSent
但是,MailSent 的签名必须如下所示:
Private Sub MailSent(ByRef Cancel As Boolean)
我不知道如何访问 MailSent 中的 MailItem,因为没有发件人对象或类似的东西。
也许这是不可能的,我应该改为阅读“已发送”文件夹中的最后一项?
用一个以MailItem
为参数的构造函数将MailItem
对象包装到自己的class中,将其保存在成员变量中,并设置事件处理程序。当事件处理程序触发时,您可以引用 class 变量。
您还可以使用 Application.ItemSend
事件,它会将正在发送的项目(可以是 MailItem
或 MeetingRequest
对象)作为参数传递。
在我的代码中,我生成了一封电子邮件,然后将其显示给用户,以便他们可以在发送前对其进行编辑。他们完成编辑后,我想将编辑后的电子邮件存储为文件,但发送后我不知道如何访问它。最合乎逻辑的方法似乎是对发送事件做出反应,以便在用户发送后立即存储它:
Dim oMail As Outlook.MailItem
'Fill oMail
oMail.Display()
AddHandler oMail.Send, AddressOf MailSent
但是,MailSent 的签名必须如下所示:
Private Sub MailSent(ByRef Cancel As Boolean)
我不知道如何访问 MailSent 中的 MailItem,因为没有发件人对象或类似的东西。
也许这是不可能的,我应该改为阅读“已发送”文件夹中的最后一项?
用一个以MailItem
为参数的构造函数将MailItem
对象包装到自己的class中,将其保存在成员变量中,并设置事件处理程序。当事件处理程序触发时,您可以引用 class 变量。
您还可以使用 Application.ItemSend
事件,它会将正在发送的项目(可以是 MailItem
或 MeetingRequest
对象)作为参数传递。