es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Script de VBA o Powershell para extraer detalles de correo electrónico (remite, destinatario, asunto) de elementos enviados y todas sus subcarpetas, basado en un rango de fechas.

Me gustaría preguntar si alguien tiene un fragmento de código listo o puede proporcionar uno funcional que haga lo siguiente:

Script en VBA o powershell para extraer los detalles de los correos electrónicos (remite, destinatario, asunto, marca de tiempo) de los elementos enviados y todas sus subcarpetas basado en un rango de fechas.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Script de VBA para extraer detalles de correo electrónico de la carpeta Elementos enviados

    Aquí hay un ejemplo de script de VBA que puede ayudarte a extraer detalles de correo electrónico de la carpeta Elementos enviados y sus subcarpetas, según un rango de fechas especificado:

    Sub ExtraerDetallesEmail()
        Dim objNS As NameSpace
        Dim objFolder As Folder
        Dim objSentItemsFolder As Folder
        Dim objSubFolder As Folder
        Dim objItem As Object
        Dim strFilter As String
        Dim dteStartDate As Date
        Dim dteEndDate As Date
        Dim strSender As String
        Dim strRecipient As String
        Dim strSubject As String
        Dim dteSentOn As Date
    
        ' Establecer el rango de fechas para filtrar correos electrónicos
        dteStartDate = #1/1/2022#
        dteEndDate = #1/31/2022#
    
        ' Establecer los criterios de filtro
        strFilter = "[SentOn] >= '" & dteStartDate & "' AND [SentOn] <= '" & dteEndDate & "'"
    
        ' Obtener la carpeta Elementos enviados
        Set objNS = Application.GetNamespace("MAPI")
        Set objSentItemsFolder = objNS.GetDefaultFolder(olFolderSentMail)
    
        ' Recorrer todas las subcarpetas de la carpeta Elementos enviados
        For Each objFolder In objSentItemsFolder.Folders
            ' Recorrer todos los elementos de la subcarpeta
            For Each objItem In objFolder.Items
                ' Verificar si el elemento es un correo electrónico y está dentro del rango de fechas
                If objItem.Class = olMail And objItem.SentOn >= dteStartDate And objItem.SentOn <= dteEndDate Then
                    ' Obtener los detalles del correo electrónico
                    strSender = objItem.SenderEmailAddress
                    strRecipient = objItem.To
                    strSubject = objItem.Subject
                    dteSentOn = objItem.SentOn
                    ' Hacer algo con los detalles del correo electrónico (por ejemplo, escribir en un archivo)
                    Debug.Print strSender & vbCrLf & strRecipient & vbCrLf & strSubject & vbCrLf & dteSentOn & vbCrLf
                End If
            Next objItem
        Next objFolder
    End Sub
    

    Simplemente copia y pega el código anterior en un nuevo módulo en tu Editor de Visual Basic y ajusta el rango de fechas y los criterios de filtro según sea necesario. El script recorrerá todas las subcarpetas de la carpeta Elementos enviados y extraerá los detalles de correo electrónico de los correos recibidos dentro del rango de fechas especificado.

    Puedes modificar el código según tus necesidades, por ejemplo, filtrando por un atributo diferente (como el asunto del correo electrónico) o exportando los detalles de correo electrónico a un archivo o hoja de Excel.

    ¡Espero que esto te ayude a extraer los detalles de correo electrónico que necesitas!

Comments are closed.