/// <summary> /// パスワード付きZIPのエントリを作成する. /// </summary> /// <param name="mailItem">メールアイテム</param> /// <param name="zipFolder">パスワード付きZIPの元にするフォルダ</param> private void CreateZipEntriesInFolder(IMyMailItem mailItem, ZipContentsFolder zipFolder) { if (mailItem.HasOneZipFileOnly()) { ExtractZipFile(zipFolder, mailItem.GetAttachments().First()); } else { SaveAttachmentsToZipFolder(zipFolder.ContentsRootFolderPath, mailItem.GetAttachments()); } }
/// <summary> /// 対象のメールアイテムが添付ファイル暗号化を行える状態か検証する /// </summary> /// <param name="item">メールアイテム</param> public void ValidateMailItemForEncryption(IMyMailItem item) { if (item.RecipientsCount <= 0) { throw new MailItemValidationException("送信先が設定されていません。TO, CC, BCCのいずれかに一つ以上のメールアドレスを入力してください"); } if (String.IsNullOrEmpty(item.Subject)) { throw new MailItemValidationException("件名が設定されていません。件名を入力して下さい"); } var attachments = item.GetAttachments().ToList(); if (attachments.Count <= 0) { throw new MailItemValidationException("添付ファイルが一つも存在しません。一つ以上の添付ファイルを設定して下さい。"); } var fileNameSet = new HashSet <string>(); foreach (var attachment in attachments) { if (fileNameSet.Contains(attachment.FileName)) { throw new MailItemValidationException("添付ファイルに同名のファイルが複数存在します。添付ファイル名は全て別名にして下さい:" + attachment.FileName); } fileNameSet.Add(attachment.FileName); } }
/// <summary> /// ZIPファイル名を作成する /// </summary> /// <param name="item"></param> /// <returns></returns> private string CreateZipFileName(IMyMailItem item) { if (item.HasOneZipFileOnly()) { // 添付ファイルがZIPファイル一つのみの場合は、ZIPファイル名を流用する return(item.GetAttachments().First().FileName); } return(CreateDefaultZipFileName()); }