Enviar mails desde PowerShell leyendo la información que se tiene que enviar desde un fichero JSON

Crear JSON con nombre, asunto, texto del mensaje y dirección de correo

$alumnos = '{
  "alumnos": {
    "alumno": [
      {
        "id": "1",
        "Nombre":  "Juanito",
        "Subject": "Asunto del correo",
        "cuerpo":  "Hola mundo",
        "Correo":  "[email protected]"
      },
      {
        "id": "2",
        "Nombre": "Pepe",
        "Subject": "Asunto del correo",
        "cuerpo":  "Hola mundo",
        "Correo": "[email protected]"
      }
    ]
  }
}' | ConvertFrom-Json

Enviar correo desde powershell

$alumnos.alumnos.alumno | %{
#$_.Nombre, $_.Correo

$EmailFrom = "[email protected]"
$EmailTo = $_.Correo
$Subject = $_.Subject
 
$SMTPServer = "smtp.outlook.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
 
$message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$message.Subject = $Subject
$message.IsBodyHTML = $true
 
$message.Body = $_.cuerpo
$pass = Read-Host "introduce contraseña" -AsSecureString
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($EmailFrom, $pass)
 
$SMTPClient.Send($message)
}