ユーザーがドキュメント ライブラリ内の項目にチェックを入れ、リボンからカスタム アクション '印刷' を選択し、クライアント側でドキュメントを印刷できる SharePoint ファームの機能を作成しようとしています。ほとんどのドキュメント (.docx、.xlsx、.pdf) は問題なく印刷されます。これは、これらの各タイプの Print メソッドで ActiveXObjects を使用できるためです。ただし、.msg ファイルを簡単に印刷できる ActiveXObject for Outlook はありません。その結果、スクリプトを介してクライアント側で .msg ファイルを印刷するために私が見つけた唯一の方法は、vbs によるものです。
TargetFolder = "C:\EmailExport"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TargetFolder)
Set colItems = objFolder.Items
For Each objItem in colItems
objItem.InvokeVerbEx("Print")
Next
これは、ローカル マシンの .vbs ファイルでは問題なく動作しますが、ブラウザでテストするために .html ファイルに配置しようとすると、Permission Denied エラーが発生します。会社のグループ ポリシーによって Internet Explorer のセキュリティ レベルが制御されているため、Internet Explorer のセキュリティ レベルを変更できる状況にありません。
テスト .html ページは次のようになります。
<html>
<head>
<script language="vbscript">
<!--
TargetFolder = "C:\EmailExport"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TargetFolder)
Set colItems = objFolder.Items
For Each objItem in colItems
objItem.InvokeVerbEx("Print")
Next
-->
</script>
</head>
<body>
</body>
</html>
これらの .msg ファイルをクライアント側で印刷できるソリューションはありますか? Outlookが出力する形式を維持したいので、最初にテキストファイルなどに変換することは実際にはオプションではありません...