Búsqueda de sitios web

Scripts de Office 365 PowerShell para enviar informes por correo electrónico: una guía rápida


Los administradores de Office 365 son responsables de monitorear a sus usuarios y recursos, lo que incluye administrar sus informes según las actividades. El cliente Outlook es una herramienta útil para enviar esos informes a revisores específicos. Por otro lado, puede resultar complicado cuando es necesario enviar informes a varios usuarios. Hola administradores, ¡no más preocupaciones! Puede utilizar scripts de PowerShell para enviar un informe por correo electrónico, ya que tiene la capacidad de automatizar el proceso de envío de informes de Office 365 a varios usuarios en el momento adecuado.

Aprendamos más sobre cómo enviar informes de Office 365 por correo electrónico de forma segura y confiable utilizando Microsoft PowerShell.

¿Por qué los administradores eligen scripts de PowerShell para enviar informes por correo electrónico?

Al ser una solución sencilla para los administradores de Office 365, PowerShell ayuda a enviar informes por correo electrónico. Garantiza que los informes se entreguen al destinatario en el momento adecuado, sin complicaciones.

Como ofrece numerosas ventajas, los administradores suelen utilizar PowerShell para crear, enviar y recuperar informes de Office 365. Algunos de sus beneficios clave son:

Escalabilidad: la distribución de informes de Office 365 a miembros grandes puede ser más fácil con PowerShell, ya que permite enviar informes simultáneamente por correo electrónico a múltiples destinatarios.

Sólido manejo de errores: la entrega de informes mediante PowerShell nos permite identificar y manejar errores que pueden ocurrir durante el proceso, como errores de archivos adjuntos y configuraciones incorrectas del servidor.

Mejorar la seguridad: ayuda a proteger nuestros informes del acceso no autorizado al cifrar el correo electrónico mediante métodos de cifrado SSL/TLS.

Informes centralizados: la centralización de PowerShell permite a los administradores generar informes en múltiples recursos de Office 365 utilizando una única consola.

Por lo tanto, al ofrecer los beneficios anteriores, PowerShell surge como la herramienta de administración de Office 365 definitiva para administrar su organización de manera eficiente.

Crear informes para enviar por correo electrónico con Microsoft PowerShell

Los informes de Office 365 sirven como una herramienta esencial para que los administradores administren y supervisen eficazmente sus usuarios y actividades de Office 365. Estos informes ofrecen información valiosa sobre los patrones de uso de Microsoft 365 y las amenazas a la seguridad, lo que le permite tomar decisiones basadas en datos.

Al aprovechar el poder de los informes de Office 365, puede identificar y abordar problemas de forma proactiva dentro de su organización. La forma rápida y cómoda de generar informes de Office 365 es a través de Microsoft PowerShell.

Puede generar informes para auditar Office 365, como rastrear las actividades de los usuarios, encontrar eventos de seguridad, investigar eventos forenses, administrar el uso compartido de archivos, monitorear las actividades del correo electrónico, etc., de manera eficiente utilizando PowerShell.

Utilice el cmdlet Send-MailMessage para enviar un informe por correo electrónico

Compartir informes a través de OWA o Outlook de escritorio será un desafío cuando se trata de una mayor cantidad de informes o de múltiples destinatarios. Sin embargo, con los scripts de PowerShell, los administradores pueden configurar una entrega de informes más rápida y segura a las bandejas de entrada deseadas de su organización.

Por lo tanto, Send-MailMessage en el módulo Microsoft Exchange Server le permite enviar los informes de Office 365 por correo electrónico a través de PowerShell.

La siguiente es la sintaxis del cmdlet que se debe seguir al enviar informes a través de PowerShell.

Send-MailMessage -From <SenderMailId> -To <RecipientMailId> -Subject <SubjectForYourMail> -SmtpServer <SmtpServerName> -Port <SMTPportNumber>  -UseSsl -Credential (Get-Credential)

Proporcione un servidor SMTP en el cmdlet, ya que la comunicación por correo electrónico a través de Internet depende del protocolo SMTP.

Puede obtener el nombre de su servidor SMTP (Protocolo simple de transferencia de correo) y el número de puerto en la opción Configuración de su cuenta de Outlook. Luego, identifique el nombre del servidor y el número de puerto como se muestra en la captura de pantalla a continuación.

El cmdlet Send-MailMessage se puede utilizar con varios parámetros para administrar las actividades de Office 365. Por lo tanto, a continuación hemos cubierto las formas más importantes de gestionar el envío de informes por correo electrónico.

  • Envíe correos electrónicos a varios destinatarios mediante un script de PowerShell
  • Enviar un informe por correo electrónico a miembros específicos del grupo
  • Enviar por correo electrónico un informe HTML a los usuarios que utilizan Microsoft PowerShell
  • Enviar informes por correo electrónico utilizando el parámetro de notificación de entrega
  • Envíe archivos adjuntos masivos por correo electrónico a varios destinatarios mediante PowerShell
  • Script de PowerShell para enviar múltiples archivos adjuntos en un solo correo electrónico

Antes de profundizar más en esto, asegúrese de conectar Exchange Online PowerShell.

Enviar correos electrónicos a varios destinatarios mediante un script de PowerShell

Es difícil enviar informes a varios destinatarios en Outlook, ya que requiere que agreguemos manualmente a cada miembro en el parámetro "Para", lo que hace que el proceso sea bastante complejo. Sin embargo, puede simplificarlo utilizando un archivo CSV para enviar informes a usuarios masivos de Office 365.

Puede crear un archivo CSV. El archivo CSV debe tener una fila de encabezado con las columnas nombre del destinatario y dirección de correo electrónico del destinatario . Luego guarde su archivo CSV y anote la ruta.

Ahora puede ejecutar el siguiente script para enviar el informe a varios usuarios por correo electrónico mediante PowerShell.

$EmailList = Import-Csv -Path <PathForYourFile> 

$Message = <TypeYourMessageHere>

ForEach ($Recipient in $EmailList) { 

    $To = $Recipient.EmailAddress 

    $Subject = <SubjectForYourMessage> 

    Send-MailMessage -To $To -Subject $Subject -Body <MessageForYourEmail> -SmtpServer  <YourSMTPServerName> -From <SenderMailId> -port 587 -UseSsl -Credential (Get-Credential) -attachment <PathOfYourReport> 

}

Por lo tanto, como resultado, el script de PowerShell enviará el informe adjunto a los usuarios mencionados en el archivo CSV.

Enviar por correo electrónico un informe a miembros específicos del grupo mediante PowerShell

Puede ahorrar tiempo y esfuerzo compartiendo el informe con todos los miembros a la vez utilizando la dirección de correo del grupo, en lugar de perder el tiempo enviando informes individualmente.

Send-MailMessage -From <SenderMailAddress> -To <GroupMailAddress> -Subject <SubjectForYourMail> -SmtpServer <SmtpsServerName> -Port <SMTPportNumber>  -UseSsl -Credential (Get-Credential) - attachments <PathOfTheReport>

Este informe se enviará a los miembros del grupo especificado como se muestra a continuación.

Una vez que se ejecuta el cmdlet anterior, el archivo adjunto se enviará a todos los miembros del grupo a través de la dirección de correo del grupo a través de PowerShell.

Envíe por correo electrónico un informe HTML a los usuarios que utilizan Microsoft PowerShell

Para enviar un informe HTML a un destinatario por correo electrónico, ejecute el siguiente cmdlet con los parámetros necesarios.

Send-MailMessage -From <SenderMailAddress> -To <RecipientMailAddress> -Subject <SubjectForYourMail> -SmtpServer <YourSMTPseverName> -Port 587  -UseSsl -Credential (Get-Credential) -attachments <PathForyourHTMLfile>

Nota: También puede enviar informes de cualquier formato como CSV, XML, txt, utilizando el cmdlet anterior.

Enviar informes por correo electrónico utilizando el parámetro de notificación de entrega

Las notificaciones de entrega le ayudarán a conocer el estado de entrega del informe. Puede obtener un estado de entrega instantáneo de un archivo adjunto y comprobar si se entregó correctamente, si hubo un retraso en la entrega o si no llegó a los destinatarios previstos.

Puede recibir notificaciones de entrega del informe enviado ejecutando el siguiente script de PowerShell.

$deliveryNotificationOption = [System.Net.Mail.DeliveryNotificationOptions]:: Specifies the delivery notification options 

 # Send the email and generate a delivery notification 

Send-MailMessage -From <senderMailId> -To <ReceiverMailId> -Subject <SubjectForYourMail> -Body <MessageForYourMail> -SmtpServer <SMTPserverName> -DeliveryNotificationOption $deliveryNotificationOption -attachments <PathForYourReport> -Priority High -UseSsl -Credential (Get-Credential)

Nota: También puedes establecer un parámetro de prioridad como el que agregamos anteriormente. y marque el correo electrónico respectivo con 'Alta importancia' que otros informes.

Se le darán cinco opciones de notificación de entrega. Ellos son,

  • Ninguno: No aparecerá ninguna notificación sobre la entrega del informe.
  • OnSuccess: Si la entrega se realiza correctamente, se le enviará una notificación.
  • OnFailure: Se le notificará con un mensaje de texto si la entrega no se realiza correctamente.
  • Retraso: Si hay algún retraso en la entrega, recibirás una notificación.
  • Nunca: no recibirás una notificación sobre la entrega del informe.

Si ejecuta este script de PowerShell con el parámetro de notificación de entrega "OnSuccess", recibirá un mensaje como el de la captura de pantalla anterior.

Envíe archivos adjuntos masivos por correo electrónico a varios destinatarios mediante PowerShell

Parece difícil enviar informes personalizados a usuarios específicos a la vez a través del cliente Outlook. Sin embargo, puede utilizar la secuencia de comandos de PowerShell para entregar varios informes a los destinatarios deseados a la vez.

Primero, cree un archivo CSV con un nombre adecuado. El archivo CSV debe tener una fila de encabezado con una columna "Correo electrónico" que contenga las direcciones de correo electrónico de los destinatarios y una columna "Informes" que contenga las rutas de los archivos de los informes separados. por comas.

Luego, ejecute el siguiente script de PowerShell para enviar informes masivos a destinatarios masivos en poco tiempo.

$list = Import-Csv -Path <pathForYourCSVfile>  

foreach ($item in $list) {  

 # Create new email message  

     $email = New-Object System.Net.Mail.MailMessage  

# Add recipient to email message  

     $email.To.Add($item.Email)  

     # Add subject and body to email message  

     $email.Subject = <SubjectForYourMail>  

     $email.Body = <MessageForYourMail>  

     # Add each report as an attachment to email message  

     $reports = $item.Reports.Split(",")  

     foreach ($report in $reports) {  

         $attachment = New-Object System.Net.Mail.Attachment($report)  

         $email.Attachments.Add($attachment)  

     }  

     # Define email sender and SMTP server information  

     $email.From = <SenderEmailId>  

     $smtpServer = <SMTPserverName>  

     $smtpPort = 587  

     $smtpSSL = $true  

     $smtpUsername = <SMTPusername>  

     $smtpPassword = <SMTPpassword>  

     # Send email using SMTP server with SSL encryption and explicit credentials  

     $smtp = New-Object System.Net.Mail.SmtpClient($smtpServer, $smtpPort)  

     $smtp.EnableSsl = $smtpSSL  

     $smtp.Credentials = New-Object System.Net.NetworkCredential($smtpUsername, $smtpPassword)  

     $smtp.Send($email)  

}

Este script de PowerShell entregará varios archivos adjuntos a los destinatarios mencionados en el archivo CSV.

Script de PowerShell para enviar varios archivos adjuntos en un solo correo electrónico

Adjuntar varios informes a un destinatario, uno por uno, puede ser un proceso largo y que requiere mucho tiempo. Sin embargo, este proceso se puede automatizar mediante PowerShell, lo que permite la distribución eficiente de informes masivos a un destinatario por correo electrónico.

Simplemente, cree un archivo CSV con las rutas de archivo enumeradas en la primera columna, como se muestra en la captura de pantalla siguiente.

Luego, envía informes masivos a un destinatario ejecutando el siguiente script de PowerShell.

# Define email parameters 

$From = <SenderEmailId> 

$To = <RecipientEmailId> 

$Subject = <SubjectForYourMail> 

$Body = <MessageToBeSent> 

 # Define CSV file path 

$CSVFile = <PathForYourCSVFileHavingReportsDetails> 

 # Read file paths from CSV file 

$Attachments = Import-Csv $CSVFile | Select-Object -ExpandProperty Path 

 # Create email message with attachments 

$Email = New-Object System.Net.Mail.MailMessage($From, $To, $Subject, $Body) 

foreach ($Attachment in $Attachments) { 

    $AttachmentStream = New-Object System.Net.Mail.Attachment($Attachment) 

    $Email.Attachments.Add($AttachmentStream) 

} 

 # Send email 

$SMTPServer = <YourSMTPserverName> 

$SMTPPort = <YourSMTPportNumber> 

$SMTPUsername = <YourUsername> 

$SMTPPassword = <YourPassword> 

$SMTPSecure = "tls" 

$SMTPCredentials = New-Object System.Net.NetworkCredential($SMTPUsername, $SMTPPassword) 

$SMTPClient = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort) 

$SMTPClient.EnableSsl = $true 

$SMTPClient.Credentials = $SMTPCredentials 

 $SMTPClient.Send($Email)

El script de PowerShell anterior entregará varios informes a un destinatario a la vez.

AdminDroid: facilite la entrega oportuna de informes de Microsoft 365

Enviar informes por correo electrónico utilizando scripts de PowerShell será difícil si es un novato en PowerShell. Además, programar informes con un programador de tareas usando PowerShell implica una amplia gama de configuraciones y opciones, lo que consume su tiempo. ¿Cómo reaccionará si le decimos que puede programar y enviar informes sin un programador de tareas ni scripts de PowerShell? Puede que te resulte difícil de creer, ¿verdad?

¡Sí! AdminDroid, un reportero de Microsoft 365, tiene una capacidad de programación avanzada que le permite personalizar el informe deseado y enviarlo a su buzón de Exchange Online. Con esta sólida función de programación, puede enviar uno o más informes a los destinatarios en el momento deseado sin demora. Por tanto, ahorra tiempo y esfuerzo al automatizar la distribución de informes de Office 365.

Obtendrá las siguientes ventajas al enviar informes por correo electrónico a través de AdminDroid.

  • Los informes programados se pueden guardar en formatos PDF, HTML, CSV, XLS, XLSX y RAW.
  • Se puede personalizar el cuerpo y el asunto del correo electrónico.
  • Los informes se pueden enviar como archivos adjuntos de correo electrónico, un único archivo zip o como enlaces.
  • Los informes programados se pueden enviar a los respectivos destinatarios automáticamente.
  • Los informes programados se pueden almacenar en el disco local o en el recurso compartido remoto.
  • Los informes se pueden enviar diariamente, semanalmente o mensualmente. Además, puede utilizar la hora programada recientemente para enviar sus informes.
  • Puede permitir que otros administradores de Microsoft 365 se suscriban a sus programaciones, asegurándose de que también recibirán sus informes programados directamente en sus buzones de correo.

Además de su función de programación, AdminDroid permite el envío rápido de informes por correo electrónico a los usuarios, lo que facilita el proceso de entrega instantánea de informes.

Sumado a lo anterior, puede programar informes de protección de correo de Exchange Online para un monitoreo periódico de las posibles amenazas a la seguridad intentadas desde las direcciones de correo de su organización, spam entrante/saliente y correos electrónicos de malware, etc.

Además, puede monitorear el tráfico de correo entrante y saliente de Microsoft 365 para esposar constantemente a los remitentes falsificados programando informes de tráfico de correo de Exchange Online en AdminDroid. Además, este informe le ayuda a analizar estadísticas como los principales remitentes/receptores de correo y los principales receptores de spam/malware, lo que le ayuda a tomar decisiones oportunas en situaciones críticas.

Además, el panel de análisis de correo electrónico de AdminDroid le brinda información sobre cada comportamiento anómalo del correo electrónico, fortaleciendo su seguridad de Microsoft 365 Exchange Online.

Una cosa más importante, como solución integral, AdminDroid proporciona análisis exhaustivos de todos los recursos de Microsoft 365, como Azure AD, Exchange Online, OneDrive, SharePoint Online, etc.

Además, AdminDroid le ofrece más de 190 informes de Azure AD sin coste alguno y allana el camino para una supervisión eficaz del inicio de sesión de los usuarios, los cambios de contraseña, etc.

¡No dejes que se te pase el tiempo! Comience a usar AdminDroid ahora para la distribución automática de informes en Microsoft 365.

¡No más retrasos en la entrega del informe!

En resumen, al utilizar estos scripts de PowerShell, reducirá el riesgo de enviar correos electrónicos a usuarios desconocidos a través del cliente Outlook. Además, puede enviar de manera eficiente los informes de actividad a los usuarios deseados en el momento adecuado. Además, estos scripts se pueden personalizar para satisfacer necesidades específicas, según los requisitos de su organización de Office 365.

Esperamos haberle brindado información sobre cómo PowerShell le ayuda a enviar informes por correo electrónico. Además, envíe sus sugerencias e ideas de scripts sobre el envío de informes mediante PowerShell en la sección de comentarios.

Artículos relacionados