Contenidos
Tener en cuenta
- https://www.jesusninoc.com/03/30/enviar-un-mail-de-felicitacion-de-cumpleanos-con-powershell-utilizando-el-smtp-de-outlook/
- https://www.jesusninoc.com/12/08/crear-una-tarea-programada-en-windows-que-ejecute-un-script-de-powershell-cada-10-minutos-de-forma-indefinida-aunque-el-porcentaje-de-bateria-sea-bajo/
- https://www.jesusninoc.com/03/27/crear-una-tarea-programada-desde-powershell-en-la-que-suene-una-alarma/
Script que felicita el cumpleaños (crear una variable csv que tiene la fecha del cumpleaños y el mail de la persona a la que hay que felicitar)
La variable CSV tiene los siguientes valores (fecha de nacimiento, nombre y mail del cumpleañero)
- 30/03/2000,Juan,[email protected]
- 14/04/1987,Marta,[email protected]
Script que felicita el cumpleaños
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
$csv = @' fecha,nombre,correo 30/03/2000,Juan,[email protected], 14/04/1987,Marta,[email protected], '@ $data = $csv | ConvertFrom-Csv $data | %{ # Enviar mail cuando sea el día del cumpleaños if ((Get-Date).Day -eq ($_.fecha).split("/")[0] -and (Get-Date).Month -eq ($_.fecha).split("/")[1]){ $Subject = "Te deseo un feliz cumpleaños " + $_.nombre $EmailTo = $_.correo $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 = "Contenido" $pass = Read-Host "introduce contraseña" -AsSecureString $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($EmailFrom, $pass) $SMTPClient.Send($message) } } |
Tarea programada que ejecuta el script de felicitar el cumpleaños una vez al día
Poner nombre a la tarea

Indicar que se repetirá diariamente a una hora determinada

Indicar que se arrancará PowerShell junto con la ruta del script que felicita el cumpleaños
