PowerShellでOutlookのメールを作成し表示する
YouTube
基本形
定型的なメールを作成し、表示するためのPowerShellスクリプト。
実際に使用する際には、ToやCCやSubjectやBodyの値を変更してください。
CreateMail.ps1
# Please change parameters
$To = "<To>"
$CC = "<CC>"
$Subject = "<Subject>"
$Body = "<Body>"
function CreateMailByOutlook {
$Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem(0)
$Mail.To = $To
$Mail.CC = $CC
$Mail.Subject = $Subject
$Mail.Body = $Body
$inspector = $Mail.GetInspector
$inspector.Display() # Outlook上で目視確認してから送信するために、Send()ではなくDisplay()を使用します
}
function Main {
CreateMailByOutlook
}
Main
ExecuteCreateMail.bat
以下のバッチファイルを一緒に置くと、バッチファイルをダブルクリックして実行できるので便利です。
pushd %~dp0
powershell -NoProfile -ExecutionPolicy RemoteSigned .\CreateMail.ps1
popd
Sample : 次の日年休を取得したい場合
CreateMailForHoliday.ps1
次の日に年休を取得する内容のメールを作成し、表示します。
ただし、金曜日と土曜日の場合には、翌日ではなく次の月曜に休む内容へ変更します。
# Create holiday data
$now = Get-Date
switch ($now.DayOfWeek.value__) {
# Friday
5 {$date = $now.AddDays(3)}
# Saturday
6 {$date = $now.AddDays(2)}
Default {$date = $now.AddDays(1)}
}
$dateString = "{0:yyyy/MM/dd}" -f $date
$dayOfWeekString = $date.ToString("ddd")
# Create E-mail
$outlook = New-Object -ComObject Outlook.Application
$mail = $outlook.CreateItem(0)
$mail.To = "Example mailing list <example@example.com>"
$mail.CC = ""
$mail.Subject = "【不在連絡】〇〇 年休 $dateString ($dayOfWeekString)"
$mail.Body ="〇〇です
自己都合の為、年休を取得します。
よろしくお願いいたします。
"
$inspector = $mail.GetInspector
$inspector.Display()
リンク
スポンサーリンク