Background
Yesterday, I had a script that I could not get email notification to go out on.
Rather than installing Blat or other email command line tools, I opted to use PowerShell.
Code
Powershell
Script
Set-StrictMode -Version Latest $script:ErrorActionPreference = "Stop" [string] $FORMAT_TIMESTAMP = "dddd yyyy-MMM-dd HH:mm tt"; [string] $FORMAT_FQDN = "{0}@{1}"; [string] $emailAddressFrom = ""; [string] $serverSMTP = "<smtpserver>"; [string] $emailAddressReceipient ="<emailAddressReceipient>"; [string] $emailSubject ="Test Email"; [string] $emailBodyPrefix = "Test Email"; [string] $domainDefault = "self"; [string] $computerFQDN = ""; $tsAsString = Get-Date -Format $FORMAT_TIMESTAMP; $objWMIComputerSystem = Get-WmiObject -Namespace root\cimv2 -Class Win32_ComputerSystem | Select Name, Domain $computer = $objWMIComputerSystem.Name; if ($objWMIComputerSystem.Domain -ne $null ){ ` $domain = $objWMIComputerSystem.Domain; } if ( ($domain -eq "" ) -or ($domain -eq $null )) { ` $domain = $domainDefault; } $computerFQDN = $FORMAT_FQDN -f $computer, $domain $emailAddressFrom = $computerFQDN; $emailBody = $emailBodyPrefix + " sent on " + $tsAsString $emailBody; Send-MailMessage ` -SmtpServer $serverSMTP ` -From $emailAddressFrom ` -To $emailAddressReceipient ` -Subject $emailSubject ` -Body $emailBody
Output
Output – Image
Output – Text
>powershell -file ./email.send.01.ps1 Test Email sent on Monday 2023-Mar-06 12:00 PM
Source Code
- GitLab
- PowerShell – Email – Send
Link
- PowerShell – Email – Send
Referenced Work
- Microsoft
- Powershell
- Learn > PowerShell > Scripting > Reference > Microsoft.PowerShell.Utility
- Send-Email
Link
- Send-Email
- Learn > PowerShell > Scripting > Reference > Microsoft.PowerShell.Utility
- Powershell