Exibir a data e hora do email mais antigo com o script do Outlook no corpo do email

0

Estou trabalhando em uma resposta automática no Outlook 2010 usando um script VBA para que, sempre que alguém me enviar e-mails, haja uma resposta automática que responda a minha contagem atual de emails não lidos junto com a data e a hora do email mais antigo.

Com relação ao Código, é o que eu tenho até agora:

Sub AutoResponse(objmsg As Outlook.MailItem)

    Dim objReply As MailItem
    Dim omsgItem As Outlook.MailItem
    Dim inbox As MAPIFolder
    Set inbox = Application.GetNamespace("MAPI"). _
    GetDefaultFolder(olFolderInbox)


    Set objReply = objmsg.Reply


    objReply.Subject = "Re: " & objReply.Subject
    objReply.HTMLBody = "Hello," _
    & "<br>" _
    & "<br>" _
    & "<br>" _
    & "Thank you for your email. This is to verify that I have received your email. I currently have " & inbox.UnReadItemCount & " unread emails and the oldest email is (Code goes here) in my inbox and will be reading emails in a first in first out fashion. If the matter is urgent and cannot wait please call me directly" _
    & "<br>" _
    & "<br>" _
    & "Regards, Mike" _
    & "<br>" _
    objReply.Send
    Set objReply = Nothing

End Sub

As palavras exatas serão diferentes, mas você deve ter a ideia.

Sou extremamente novo nisso e consegui juntar um pouco de código do Google e conhecimento prévio ao desenvolver um aplicativo diferente no .Net.

Qualquer ajuda seria muito apreciada.

    
por Jae 15.12.2014 / 19:39

1 resposta

2

Const olFolderInbox = 6
Dim mapiNamespace As Outlook.NameSpace
Dim inboxFolder As Outlook.Folder
Dim unreadItems As Outlook.Items

Set mapiNamespace = Application.GetNamespace("MAPI")
Set inboxFolder = mapiNamespace.GetDefaultFolder(olFolderInbox)
Set unreadItems = inboxFolder.Items.Restrict("[Unread] = True")
unreadItems.Sort "[ReceivedTime]", False

O código acima filtra apenas os e-mails não lidos da sua caixa de entrada e os classifica pelo tempo de recebimento. Se você tem que você pode acessar facilmente o mais antigo com:

unreadItems.GetFirst().ReceivedTime
    
por 16.12.2014 / 16:01