The following is an example of how to send an email using PowerShell via O365. If you need to send via Gmail or another provider, it should just be a case of swapping out the SMTP settings.
The email account defined with SMTPClient.Credentials will need a O365 license and will need to have permission to send from the address defined by $EmailFrom. If $EmailFrom is a different mailbox
# O365 Email setup
$SMTPServer = "smtp.office365.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
# Change this sections variables as required
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("[email protected]", "Password");
$EmailFrom = "[email protected]"
$EmailTo = "[email protected]"
$EmailSubject = "Just a Test Mail"
$EmailBody = "<strong>A Test HTML Email</strong>"
# Send the Email
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$EmailSubject,$EmailBody)
$SMTPMessage.IsBodyHTML = $true # Set to $false or delete this line if you want plain text
$SMTPClient.Send($SMTPMessage)
Need a script to email users of an upcoming password expiry? PowerShell – Notify users of an upcoming AD password expiry via email