2013-12-16 2 views
0

Я хотел бы отобразить количество писем в почтовых ящиках, разделенных датой, а затем отправить электронное письмо с этой информацией конкретному пользователю.Отобразить количество писем во входящих, разделенных датой

Все, что у меня есть здесь, кроме вчерашней даты, показывает количество писем +1. Однако другие подсчеты электронной почты являются правильными.

Sub HowManyEmails() 

    Dim objOutlook As Object, objnSpace As Object, objFolder As MAPIFolder 
    Dim EmailCount As Integer 

    Set objOutlook = CreateObject("Outlook.Application") 
    Set objnSpace = objOutlook.GetNamespace("MAPI") 

    On Error Resume Next 

    Set objFolder = objnSpace.Folders("Mailbox - IT Support Center").Folders("NON TICKET related Emails") 

    If Err.Number <> 0 Then 
     Err.Clear 
     MsgBox "No such folder." 
     Exit Sub 
    End If 

    EmailCount = objFolder.Items.Count 

    MsgBox "Number of emails in the folder: " & EmailCount & " Total Non-Ticket email count" 

    Dim dateStr As String 
    Dim myItems As Outlook.Items 
    Dim dict As Object 
    Dim msg As String 

    Set dict = CreateObject("Scripting.Dictionary") 
    Set myItems = objFolder.Items 

    myItems.SetColumns ("SentOn") 

    ' Determine date of each message: 
    For Each myItem In myItems 
     dateStr = GetDate(myItem.SentOn) 
     If Not dict.Exists(dateStr) Then 
      dict(dateStr) = 0 
     End If 
     dict(dateStr) = CLng(dict(dateStr)) + 1 
    Next myItem 

    ' Output counts per day: 
    For Each o In dict.Keys 
     msg = msg & o & ": " & dict(o) & " Non-Ticket items" & vbCrLf 
    Next 

    MsgBox msg 

    Set objFolder = Nothing 
    Set objnSpace = Nothing 
    Set objOutlook = Nothing 

    'Send Mail 
    Set OutApp = CreateObject("outlook.Application") 
    Set OutMail = OutApp.CreateItem(o) 

    With OutMail 
     .Subject = "Non Ticket Emails" 
     .To = "[email protected]; [email protected]" 
     .Body = msg 
     .Display 
     .Send 
    End With 

    Set OutMail = Nothing 
    Set OutApp = Nothing 

End Sub 
+1

Что делает 'GetDate (myItem.SentOn)' делать? –

+0

Я не уверен, это было скопировано из существующего шаблона. –

+0

Проверьте свой код. Это должно быть где-то –

ответ

0

Хорошо, я нашел проблему. Сценарий улавливает отправленное время, а не полученное время (какой вид сортировки сортируется). Я изменил senton на получение времени в коде, и он работает!

Смежные вопросы