Windowsメールで指定フォルダーのメールを一括で印刷するWindows PowerShellスクリプト

Windowsメールを一括で印刷したいニーズはたまにある。例えば、メールをPDFファイルとしてバックアップしたい場合だ。PDF作成ツールはたいていプリンタードライバーとして実装されているため、印刷によってPDFファイルを作成することになる。

しかし、Windowsメールには一括印刷機能がない。Adobe AcrobatにはOfficeに付属しているOutlookのメールを一括でPDFに変換する機能があるが、Windowsメールを一括でPDF変換する機能は搭載されていない。WindowsメールをOutlookにインポートしてからAcrobatの変換機能を使う手もあるが、HTMLメールが再現されないという問題がある。

私の場合、ケータイ(携帯電話)のメールをバックアップするためにドコモケータイdatalinkというソフトウェアでメールをPCに取り込んでバックアップを試みたが、デコメールが再現されない。彼女や女性の友人にデコメールを使うなとは言えない。デコメール、HTMLメールをPDFに変換しても再現されるWindowsメールでバックアップし、一括で印刷しPDFに変換できれば問題ない。

そこで、Windows PowerShellで印刷を自動化するスクリプトを書いて手間を省いた。使い方は次の通りだが、最初は少ない件数でテストしてみてから本番を行うといいだろう。実行中はPCは操作しないほうがいいので、寝る前や入浴前、食事前に実行をかけておくと時間を有効に使うことができる。

  1. Windows メールを起動する。
  2. 保存するメールがあるフォルダを開く。
  3. スクリプトの $windowTitle にそのときの Windows メールのタイトルを入力しておく。
  4. スクリプトの $printCount に処理するメールの件数を入力しておく。
  5. スクリプトの $printerName のプリンター名を確認する。
  6. プリンターの設定で結果ファイルを表示しないようにに設定する。
  7. Windows メールが起動して、最小化されていなくて、保存するメールがあるフォルダが開かれているかの最終確認。
  8. スクリプトを実行!
  9. コーヒーブレイク、またはお風呂、または食事、または寝る!