我发送电子邮件前可以检查收件人是否设置了自动回复吗?

3
我已经设置了一个宏,可以自动向数十个经理发送电子邮件。有时他们会离开,我必须检查离开信息并手动转发给代替他们的人。
我试图在求助之前找到解决方案,希望你能施以援手!我找到了一个类似的问题,但没有太多的帮助,我不能找到从草稿中提取自动回复信息的大量信息。
到目前为止,这就是我所拥有的:
Sub CheckAutoReply()

Dim OL As Outlook.Application
Dim EM As Outlook.MailItem
Dim R As Outlook.Recipient

Set OL = New Outlook.Application
Set EM = CreateItem(olMailItem)

With EM
    .display
    .To = "John.Doe@Stackoverflow.com" 'This is a recipient I know has an autoresponse. Fictitious of course.
End With

Set R = EM.Recipients(1) 'on hover it pops up with "EM.Recipients(1) = "John.Doe@Stackoverflow.com""

Debug.Print R.Name 'this returns "John.Doe@Stackoverflow.com"
Debug.Print R.AutoResponse 'this returns nothing

Set OL = Nothing
Set EM = Nothing

End Sub

1
在另一个问题中的三个可能解决方案中,你实际上尝试了哪一个(或哪几个)来实现?或者你可以尝试设置一个事件处理程序来处理“离开办公室”回复的传入邮件。无论哪种情况,你都需要使用某种正则表达式来识别额外的转发接收者... - undefined
我从第一个开始。经过一番谷歌搜索,我找到了这个链接:http://www.dimastr.com/redemption/RDOOutOfOfficeAssistant.htm它更多地是关于设置的内容。我找不到任何关于应该使用哪个参考的信息。 - undefined
1
看起来你在上面的方法中并没有真正使用Redemption,但如果你使用了,也许Dmitry可以帮助你。我对此不太熟悉,但根据他在之前问题中的评论,你应该能够做到这一点。 - undefined
2个回答

1

这不是一个正确的答案,而是一个帮助你入门的尝试。

你的代码表明你对Outlook VBA的了解有限。如果是这样,我怀疑“类似问题”中的任何方法都不适用。你是否熟悉Visual Studio、C++、Delphi或Redemption?即使你成功访问了PR_OOF_STATE,你也无法获得备选电子邮件地址。

我建议从自动回复邮件中提取电子邮件地址。查找“@”,并提取到下一个空格前后的文本可能足够。

将下面的代码复制到Outlook VBA模块中。选择其中一封自动回复邮件,并运行DemoExplorer宏。此宏的目的是向你展示电子邮件的文本和HTML正文是什么样子的。在其他回复上尝试此宏。正文是否一致?你能看到如何提取备选电子邮件地址吗?

Public Sub DemoExplorer()

  Dim Exp As Outlook.Explorer
  Dim ItemCrnt As MailItem
  Dim NumSelected As Long

  Set Exp = Outlook.Application.ActiveExplorer

  NumSelected = Exp.Selection.Count

  If NumSelected = 0 Then
    Debug.Print "No emails selected"
  Else
    For Each ItemCrnt In Exp.Selection
      With ItemCrnt
        Debug.Print "From " & .SenderName & " Subject " & .Subject
        Debug.Print "Text " & Replace(Replace(Replace(.Body, vbLf, "{lf}"), vbCr, "{cr}"), vbTab, "{tb}")
        Debug.Print "Html " & Replace(Replace(Replace(.HTMLBody, vbLf, "{lf}"), vbCr, "{cr}"), vbTab, "{tb}")
      End With
    Next
  End If

End Sub

我能够从现有的电子邮件中获取信息,我只是试图在草稿中获取这些信息,然后让它在一个输入框中弹出,提示我输入管理助理的电子邮件地址。我已经设置好了通过收件箱查找任何自动回复并提取管理助理姓名的功能,我只是希望如果在撰写电子邮件时就能获取到这些信息,那么之后的工作就可以避免了。http://i.imgur.com/w5qqkUl.png - undefined
我是一个Outlook用户,但没有访问Exchange服务器的权限,所以无法进行实验。你提到的答案暗示了这些信息在VBA中不可用,因此你将不得不尝试列出的其中一种替代方法。 - undefined

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接