Búsqueda de sitios web

Microsoft 365: envíe correos electrónicos con PowerShell


El envío de correos electrónicos con fines de seguimiento o documentación es un procedimiento común en las redes Windows. Cuando se pasa a la nube, ya no existe el intercambio local, lo que significa que sus cuentas de servicio tienen que enviar correos electrónicos a través de Exchange Online. Si actualmente se encuentra en un proceso de migración a Microsoft 365, podría considerar cambiar sus scripts para que apunten a los servidores de Microsoft que residen en la nube.

De esto se trata esta publicación de blog. Le proporcionaré un código de muestra que puede utilizar para enviar correos electrónicos a través de Exchange Online.

Envío de correos con Microsoft 365 a través de PowerShell

Para enviar correos con PowerShell y los servidores de correo de Microsoft 365 no se requiere configuración adicional. Los servidores de correo de Microsoft escuchan el puerto 25 o el puerto 587 (SSL) y eso está bien.

Copie el código e ingrese su nombre de usuario (dirección de correo electrónico) y su contraseña y envíe el correo a alguien de su elección.


### Ask for credentials

$username = Read-Host 'Enter e-mail address'
$password = Read-Host "Enter password of $username" -AsSecureString
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $password
$subject = 'Alert: Test!'
$body = 'This is for testing purposes'

### Splatting with Hash Table

$hash = @{

To = 'patrick.gruenauer@yourdomain.com'
From = $username
Subject = $subject
Body = $body
BodyAsHtml = $true
SmtpServer = 'smtp.office365.com'
UseSSL = $true
Credential = $cred
Port = 25

}

### Send Mail

Send-MailMessage @hash -WarningAction Ignore

¡Bien! Aquí lo tienes.

Con los scripts, sin embargo, se encontrará con problemas: ¿Cómo se debe especificar la contraseña si no está en texto plano? No te preocupes, hay una solución. Cómo cifrar contraseñas dentro de scripts, consulte:

PowerShell: cifre y almacene sus contraseñas y úselas para autenticación remota (Protect-CmsMessage)

PowerShell: cifrar y descifrar datos mediante certificados (clave pública/clave privada)

Artículos relacionados