【PowerShell】Send-MailMessageを使ってメール送信

PowerShell

ps1ファイル

Sendmail.ps1

$mail = @{
    from = "from@gmail.com";
    to = @("to1@gmail.com","to2@gmail.com");
    smtp_server = "smtp.gmail.com";
    smtp_port = 587;
    user = "from@gmail.com";
    password = "123456";
}

$subject = "件名";
$crlf = "`r`n";
$body = "初めまして" + $crlf;
$body += "システム開発チームです。" + $crlf;
$body += " よろしくお願いします" + $crlf;

# 有効な値は、ASCII、UTF8、UTF7、UTF32、Unicode、BigEndianUnicode、Default、および OEM です
$encoding = ([System.Text.Encoding]::UTF8); 

$password = ConvertTo-SecureString $mail["password"] -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $mail["user"], $password

Send-MailMessage -To $mail["to"] `
                 -Cc $mail["cc"] `
                 -From $mail["from"] `
                 -SmtpServer $mail["smtp_server"] `
                 -Subject $subject `
                 -Body $body `
                 -Credential $credential `
                 -Port $mail["smtp_port"] `
                 -UseSsl
                 -Encoding $encoding

batch /batファイル

@echo off
echo 開始..
powershell -NoProfile -ExecutionPolicy Unrestricted .\Sendmail.ps1
echo 完了!
rem pause > nul
exit
Send-MailMessage
目的の文字コードに合ったEncodingオブジェクトを取得する

コメント