Exchange Online : Exportar mediante Powershell el detalle de flujo de correos (enviados / recibidos)

Exchange Online : Exportar mediante Powershell el detalle de flujo de correos (enviados / recibidos)

Para este procedimiento solo se debe abrir como administrador de Windows el entorno de Scripting de Powershell (“Powershell ISE”) y ejecutar lo siguiente:

Nota: El procedo exporta los últimos 10 días (máximo permitido) con la información en bloques hacia archivos CSV con el prefijo "SMTPlog" ubicados en la raiz del disco (C:\) , y cada archivo exportado contiene un tope de 5000 registros.

 

$PrefijoArchivoCSV = "C:\temp\SMTPlog"

Import-Module ExchangeOnlineManagement

 

$EsTenantPropio = read-host -Prompt "Por Favor indique si es administrador de un tenant propio (S), o si es administrador delegado (guest) en un tenant externo (N)"

if ($EsTenantPropio.ToUpper() -eq 'S') {

    Connect-ExchangeOnline

    }

else {

       # Si tenemos un usuario EXTERNO a un dominio (usuario guest) que tiene permiso de administrador (permiso delegado) dentro de dicho tenant externo

       $administradorExterno = read-host -Prompt "Indique el usuario administrador (administradorexterno@dominioexterno.com) "

       $tenantExterno = read-host -Prompt "Indique el tenant en el cual es usuario externo y es administrador (tenantconpermisodelegado.onmicrosoft.com) "

       Connect-ExchangeOnline -UserPrincipalName $administradorExterno -DelegatedOrganization $tenantExterno

}

 

Write-Host "Conectado..."

Write-Host "Obteniendo listado de direcciones de correo..."

 

#Collect all recipients from Office 365

$Recipients = Get-Recipient -ResultSize Unlimited | select PrimarySMTPAddress

$MailTraffic = @{}

foreach($Recipient in $Recipients)

{

    $MailTraffic[$Recipient.PrimarySMTPAddress.ToLower()] = @{}

}

$Recipients = $null

 

#Collect Message Tracking Logs (These are broken into "pages" in Office 365 so we need to collect them all with a loop)

$Messages = $null

$Page = 1

do

{

    Write-Host "Recolectando Flujo de mensajes - Pagina $Page..."

    $CurrMessages = Get-MessageTrace -StartDate (Get-Date).AddDays(-10) -EndDate (Get-Date)  -PageSize 5000  -Page $Page| Select Received,*Address,*IP,Subject,Status,Size

    if ($CurrMessages -ne $null)

      {

        $CurrMessages | Export-Csv "$($OutputFile)$($Page).csv" -NoTypeInformation

      }

    $Page++

    $Messages += $CurrMessages

}

until ($CurrMessages -eq $null)

Write-Host "Desconectando... por favor acepte la validación para finalizar..."

Disconnect-ExchangeOnline

 




    • Related Articles

    • Revisar Flujo de Correos

      Revisar Flujo de Correos Ingresar al portal y seleccionar los puntos en la parte superior izquierda, como se señala Buscar “Admin”, en caso de que no aparezca en el inicio, dar clic en todas las aplicaciones Seleccionar la opción “Mostrar todo” Aquí ...
    • Configuracion de regla para correos electrónicos en el centro de administración de Exchange

      Esta medida se realiza en solicitud de querer una copia de los mensajes originales en otro buzón y debido a que se tiene una necesidad particular de cambiar cierta parte del asunto original de los mensajes, de acuerdo con esto se presentan los ...
    • Envio de correos desde Microsoft 365 mediante SMTP usando conector

      ·         Datos de conexión para el envío: Servidor:             dominio-com.mail.protection.outlook.com Puerto:                25 SSL:                     NO Usar SSL ni TLS  (anteriormente se requería SSL) Activar la opción "SMTP autenticado" para ...
    • Conectar Office 2013 con Exchange Online

      Conectar Office 2013 con Exchange Online  ​​​ Habilitar autenticación moderna para Office 2013 en dispositivos Windows ...
    • Exportar base de datos de Azure SQL e Importarla en Entorno local

      La exportación de una base de datos de Azure SQL se debe realizar hacia un Archivo “.bacpac”, y luego en el entorno local importar dicho archivo en el servidor SQL Server destino. Importante: ·        Siempre tras terminar el proceso se debe ...