« Visual studio community 2015でOutlookアドインを作成する | トップページ | Raspberry piでC#を使ってIoT »

2017.02.03

Outlookアドインの改良?版

前の記事で紹介した添付ファイルを暗号化ZIPファイル化するOutlookアドインは、ZIP書庫内のファイルを開く際にパスワードの入力が必要ではあるものの、ファイル名自体は丸見えですので、第三者から見られたらどんなファイルが添付されているのかがわかってしまいます。
ということで、ファイル名を見られるのはいやだという場合を考えて、添付ファイルを一旦普通にZIP書庫に圧縮して、そのZIP書庫を暗号化ZIPファイルにすれば良いのではと思って修正したのが以下になります(修正箇所のみ)。
まぁここまでやる必要があるのかということなのですが、複数のファイルを格納する場合には、ファイルを開くたびにいちいちパスワードを入力しなければならないのですが、これだと中のZIPファイルを開く時に1回だけパスワードを入力すれば、その中にあるファイルには自由にアクセスできるので複数のファイルを添付する場合にはこちらの方が便利かもしれません。


       // 添付ファイルをまとめてパスワード付きZIPファイルに圧縮する
private void button2_Click(object sender, RibbonControlEventArgs e)
{
string originalFile, compressFile, displayName, wp;
int cnt, i;
wp = GetWorkPath() + "\\";
compressFile = wp + "Attachment.zip";
//普通に暗号化圧縮しただけでは元のファイル名がわかってしまうので
//一旦Attachment.zipに通常圧縮する
cnt = mailItem.Attachments.Count;
using (ZipFile zip = new ZipFile(Encoding.GetEncoding("Shift-JIS")))
{
zip.CompressionLevel = CompressionLevel.BestCompression;
for (i = cnt-1; i >= 0; i--)
{
Attachment attachFile = mailItem.Attachments[i + 1];
originalFile = wp + attachFile.FileName;
attachFile.SaveAsFile(originalFile);
zip.AddFile(originalFile, "");
attachFile.Delete();
}
zip.Save(compressFile);
azip = compressFile;
}
//圧縮したZIPファイルをパスワードZIPファイルにする
compressFile = wp + GetZipName();
using (ZipFile zip = new ZipFile(Encoding.GetEncoding("Shift-JIS")))
{
zip.CompressionLevel = CompressionLevel.BestCompression;
zip.Password = PassWord();
//ひとまとめにしたZIPファイルを更にZIP書庫に追加
zip.AddFile(azip, "");
zip.Save(compressFile);
}

「アドインセットアップファイル」をダウンロード

※既に以前のアドインをインストール済みの場合は、一旦コントロールパネルからアンインストールした上でインストールして下さい。
※ライセンス:個人的な使用のみ可です。

|

« Visual studio community 2015でOutlookアドインを作成する | トップページ | Raspberry piでC#を使ってIoT »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: Outlookアドインの改良?版:

« Visual studio community 2015でOutlookアドインを作成する | トップページ | Raspberry piでC#を使ってIoT »