【问题标题】:Detect when a new e-mail has been created (WithEvents)检测何时创建了新电子邮件(WithEvents)
【发布时间】:2016-08-19 10:41:22
【问题描述】:

我正在尝试从 Excel 工作簿调用存储在 Outlook 的“ThisOutlookSession”中的过程。不幸的是,较新的 Outlook 2010 应用程序与 MS Office 产品之间的application.run *SubName* 不兼容。

由于“.send”上的安全消息需要有人值守站,因此无法完成代表 Outlook 发送电子邮件的 Excel 脚本。 (并且无法从公司政策中更改安全设置)

当前工作流程...

-用户向我发送一封主题和附件中包含“命令”的电子邮件

-事件侦听器在带有以下标题的附件上找到并成功运行 Excel 例程,以便在 Outlook 中侦听

Private WithEvents Items As Outlook.Items
&
Private Sub Items_ItemAdd(ByVal Item As Object)

-在 Excel 中处理后,我会尝试将此数据自动返回给发件人。 (这就是问题所在)

我在 Excel 中使用后期绑定来创建和准备返回电子邮件。这是“.send”之前的一步。理想情况下,我希望避免使用 SendKeys 语句,因为如果同时处理其他工作簿,它并不完全可靠。

在 Excel 中...

Sub test()
Dim aOutlook As Object
Dim aEmail As Object

Set aOutlook = CreateObject("Outlook.Application")
Set aEmail = aOutlook.CreateItem(0)

aEmail.To = "My email address"
aEmail.Subject = "Testing"
aEmail.Body = "Testing"
aEmail.display

End Sub

我一直试图让 Outlook 识别 Excel 创建这封新电子邮件,其中列出了 MSDN 页面中列出的事件。我认为下面的代码是识别新邮件项所需要的,但使用 Outlook.mailItem 下的大多数预设声明都没有成功。

Private WithEvents NewItem As Outlook.mailItem

如果您有解决方案或可供我追求的替代想法,请告诉我

【问题讨论】:

  • 如果被否决,请告诉我为什么这样我可以改进我的问题

标签: excel vba outlook vb6


【解决方案1】:

已解决,如果将来有人需要这个。它绕过安全警告并且不依赖于发送密钥。

Excel 准备一封电子邮件并显示它 - 准备好后,来自 Outlook 的“On 事件”会在加载邮件项时识别“收件人”地址,然后可以从那里接管:使用 .send 语句完成。

请注意,需要添加更多参数,例如 item.subject 中的特定代码,以确保其发送的电子邮件是正确的。

在 Excel 中:

Sub test()
Dim aOutlook As Object
Dim aEmail As Object

Set aOutlook = CreateObject("Outlook.Application")
Set aEmail = aOutlook.CreateItem(0)

aEmail.To = "abs@123.com"
aEmail.Subject = "Testing"
aEmail.Body = "testing"
aEmail.Display

End Sub

在 Outlook 中:

Public WithEvents myItem As Outlook.mailItem

Private Sub Application_ItemLoad(ByVal Item As Object)
    If (TypeOf Item Is mailItem) Then
        Set myItem = Item
    End If
End Sub

Private Sub myItem_Open(Cancel As Boolean)

If myItem.To = "abs@123.com" Then
    MsgBox "Detected"
    myItem.Send
End If

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    相关资源
    最近更新 更多