2

在工作中,我们使用共享的 Outlook 邮箱来接收来自我们用户的电子邮件,而现在我们轮到谁来监控邮箱和回复等。我们的工作时间是早上 7 点到下午 5 点,因为我们开始使用电子邮件地址.

在接下来的 2 个月里,我们(或者我应该说,只有我自己)将在晚上 11 点之前监控邮箱的时间发生变化。

我想做的是收集一些关于我们收到的电子邮件的统计数据,看看是否值得从业务角度来看,以便在跟踪之后继续进行后续工作。

我想做的是使用一些 VBA 来检查收件箱中的电子邮件,然后将数据分解为一些统计信息以进行管理,例如:

Monday 06/05/12: 
49 emails received, 34 were replies, 15 were new
At 7am received: 0 emails
At 8am received: 1 emails
------
At 11pm received: 0 emails

ETC

要确定电子邮件是原始邮件还是回复邮件,我认为最容易查看主题是否以 RE: 开头?(我知道这不是万无一失的,但我认为它适用于基本统计数据)

有没有人做过这样的事情?有没有简单/正确的方法?

有人有任何有用的提示/代码示例吗?

4

3 回答 3

2

你可以从这样的事情开始

Sub EmailStats()

    Dim olMail As MailItem
    Dim aOutput() As Variant
    Dim lCnt As Long
    Dim xlApp As Excel.Application
    Dim xlSh As Excel.Worksheet
    Dim flInbox As Folder

    Set flInbox = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

    ReDim aOutput(1 To flInbox.Items.Count, 1 To 4)

    For Each olMail In flInbox.Items
        If TypeName(olMail) = "MailItem" Then
            lCnt = lCnt + 1
            aOutput(lCnt, 1) = olMail.SenderEmailAddress 'maybe stats on domain
            aOutput(lCnt, 2) = olMail.ReceivedTime 'stats on when received
            aOutput(lCnt, 3) = olMail.ConversationTopic 'group based on subject w/o regard to prefix
            aOutput(lCnt, 4) = olMail.Subject 'to split out prefix
        End If
    Next olMail

    Set xlApp = New Excel.Application
    Set xlSh = xlApp.Workbooks.Add.Sheets(1)

    xlSh.Range("A1").Resize(UBound(aOutput, 1), UBound(aOutput, 2)).Value = aOutput
    xlApp.Visible = True

End Sub

如果要添加更多数据,只需更改Redim语句以容纳更多列并将它们添加到 If 块中。一旦进入 Excel(或者如果数据很多,可能是 Access 或 SQLServer),您可以添加一些计算,例如

=IF(LEFT(@Subject,3)="RE:","Reply",IF(LEFT(@Subject,3)="FW:","Forward","Original"))

然后疯狂地转动。

您需要对 Excel 对象库的引用才能使上述代码正常工作。

于 2013-05-06T21:28:26.823 回答
1

我会后退一步,使用邮件服务器中的日志文件来回答这个问题。

每天一次,您可以简单地提取邮箱收到的所有电子邮件的报告。如果您个人无权访问它们,那么您的邮件管理员应该这样做。

于 2013-05-06T17:52:34.797 回答
0

NirSoft 的优秀人员制作了一个名为OutlookStatView的好工具。

截图示例:

Outlook电子邮件的表格统计

如果您不太热衷于使用 VBA,请尝试使用可用的高级过滤选项,使用它您可以选择特定文件夹,并开始日期时间和结束日期时间以进行监视。

注意:这不会是实时的或自动化的,这都是手动方式来展示可能性。

邮箱扫描选项: 邮箱扫描选项

在 Windows 2000/XP/Vista/2003/2008/7/8/10 上运行。

支持任何版本的 Microsoft Outlook,包括 Outlook 2016。

我正在寻找 Mac 和 Linux 的替代品。

这个答案与https://superuser.com/a/1226613/249975相似但不同

于 2017-07-07T08:35:26.180 回答