今回はPowerShellを使用して簡単なメールの作成を自動化する方法を記載します。
- 前提条件です。
- メーラーは「Outlook」を使用します。
- 既に「Outlook」を起動していることを前提としています。
- メールの形式は「HTML形式」です。(フォントとサイズを変更する方法がこれしかわからないからです…。)
#HTMLでメール本文を作成している
$Body = "
TEST<br>
TEST<br>
"
$template = @()
$template += "<html><head><style type='text/css'>
<!--
body {font-size:10.5; font-family: Meiryo UI;}
-->
</style>
</head>
<body>"
$template += $Body
$template += "</body></html>"
#メール本文が格納されている配列を改行コードで分割してString型にする
$templateStr = $template -join "`n"
# Outlookプロセスが存在するか調べる。
$outlookProc =Get-Process|Where-Object {$_.Name -match "OUTLOOK"}
if ($outlookProc -eq $null){
$existsOutlook = $false
}else{
$existsOutlook = $true
}
#Outlookプロセスがそ存在する場合
if ($existsOutlook) {
$OutlookObj = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
#メールを作成する
$Mail = $OutlookObj.CreateItem(0)
#Toの設定(ここでは何も設定していない変数を使用しています)
$Mail.To = $To
#Ccの設定(ここでは何も設定していない変数を使用しています)
$Mail.CC = $CC
#件名の設定(ここでは何も設定していない変数を使用しています)
$Mail.Subject = $Subject
#HTMLでメールを作成します。
$Mail.HTMLBody =$templateStr
#作成したメールを表示
$inspector = $Mail.GetInspector
$inspector.Display()
}
これでメールの作成は自動でできるようになったかと思います。
そのうち、
HTMLを使用せずにフォントとフォントサイズを変更する方法を見つけられたらまたアップデートしてみたいと思います。