Powershellでメール送信
Powershellでメール送信を行う方法を紹介致します。
私は、プログラムの実行結果の取得や特定の時間にメール送信を行いたい場合などに使用しています。
SmtpClient/Send-MailMessageを使った方法を記載しています。
※Send-MailMessageでPort指定を行えない場合は、SmtpClientを使う事があります。
上記二つではなく、現在はMailKit等でメールする方法が推奨されているようです。(職場では諸事情で使えず、、)
下記スクリプトでメールを送信できます。
SmtpClient
$Address = "メールアドレス"
$Subject = "件名"
$Body = "本文"
$SmtpServer = "smtp.office365.com" Or "smtp.gmail.com"
$SmtpClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SmtpClient.EnableSsl = $true
$SmtpClient.Credentials = New-Object System.Net.NetworkCredential($Address, "パスワード")
$SmtpClient.Send($Address, $Address, $Subject, $Body)
Send-MailMessage
$Address = "メールアドレス"
$Subject = "件名"
$Body = "本文"
$SmtpServer = "smtp.office365.com" Or "smtp.gmail.com"
$Pass = ConvertTo-SecureString "パスワード" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential $Address,$Pass
Send-MailMessage `
-Encoding UTF8 `
-From $Address `
-to $Address `
-subject $Subject `
-body $Body `
-smtpServer $SmtpServer `
-Port 587 `
-Credential $Credential `
-UseSsl