見出し画像

PowerShell メール受信 Outlookを使う

PowerShell メール受信するスクリプトです。
PowerShell単体ではメール送信はできても受信はできないのでOutlookを使います。



条件


・Outlook2021などのOutlookがインストールされていること
・予めメールアカウントの設定がされていること


受信

Outlook受信トレイの中をPowerShellから拾います


$outlook=New-Object -ComObject Outlook.Application
$session=$outlook.Session
$inbox=$session.GetDefaultFolder(6) #受信トレイ
$cnt=0
foreach ($item in $inbox.Items){
 $item.CreationTime
 write-host " タイトル: "
 $item.Subject
 write-host " 本文: "
 $item.body.Substring(0,20)

 # 5件だけ出す
 $cnt+=1
 if($cnt -gt 5){ 
 break
 }

 write-host ""
}
$outlook.quit()


送信

ついでに送信トレイ済みの中も見てみます

$outlook=New-Object -ComObject Outlook.Application
$inbox=$session.GetDefaultFolder(5) #送信トレイ済み
$cnt=0
foreach ($item in $inbox.Items){
 $item.CreationTime
 write-host " タイトル: "
 $item.Subject

 # 5件だけ出す
 $cnt+=1
 if($cnt -gt 5){ 
 break
 }
 
 write-host ""
}
$outlook.quit()


#session.GetDefaultFolder(5)のところを変えると他のトレイの中を見ることができます


削除済みフォルダ
$session.GetDefaultFolder(3)
送信トレイ
$session.GetDefaultFolder(4)
送信済みアイテム
$session.GetDefaultFolder(5)
受信トレイ
$session.GetDefaultFolder(6)
予定表
$session.GetDefaultFolder(9)
連絡先
$session.GetDefaultFolder(10)
履歴
$session.GetDefaultFolder(11)
メモ
$session.GetDefaultFolder(12)
タスク
$session.GetDefaultFolder(13)
アラーム
$session.GetDefaultFolder(14)
アラーム
$session.GetDefaultFolder(15)
下書き
$session.GetDefaultFolder(16)
迷惑メール
$session.GetDefaultFolder(23)
RSS フィード
$session.GetDefaultFolder(25)
To Do バーのタスク リスト
$session.GetDefaultFolder(28)
クイック操作設定
$session.GetDefaultFolder(31)
クイック連絡先
$session.GetDefaultFolder(36)



受信メールをCSVファイルに出力する


$outlook=New-Object -ComObject Outlook.Application
$session=$outlook.Session
$inbox=$session.GetDefaultFolder(6)
$cnt=0
$mails=@()
foreach ($item in $inbox.Items){
 $mails+=[PSCustomObject]@{
  "CreationTime" = $item.CreationTime
  "Sender"= $item.Sender.Address
  "CC"= $item.CC.Address
  "BCC"=$item.BCC.Address
  "Subject"=$item.Subject
  "Body"=$item.Body
 }

 # 100件まで
 $cnt+=1
 if($cnt -gt 100){ 
  break
 }
}
$mails|Export-Csv -Path 'C:\temp\mail.csv' -NoTypeInformation -Encoding Default



#PowerShell #プログラミング学習 #プログラミング #Outlook #メール受信 #メール送信


メール送信する記事はこちら


この記事が気に入ったらサポートをしてみませんか?