附加到电子邮件的受密码保护的文件不要求密码

Password Protected File attached to Email not asking for password

如果您需要更多详细信息,请告诉我,因为我不知道我应该提供什么来获得帮助。

所以我有一个受密码保护的 excel 文件,我在代码中将其作为电子邮件附件发送。我用密码保护代码中的文件。当我打开文件时,本地保存的文件要求输入密码。但是当我通过发送的电子邮件打开文件时,它不要求输入密码,而是直接打开。我在网上搜索但找不到任何东西。

这是我加密文件和发送电子邮件的代码

HSSFWorkbook workbook = new HSSFWorkbook(poi,true);
workbook.writeProtectWorkbook("pass","");
FileOutputStream fo = new FileOutputStream(myExcelFile);

...

Email email = new Email(to, from , subject, body.toString(), true);
email.attachFile(myExcelFile);
email.send();

因此,经过更多测试并询问一些同事后,我发现电子邮件程序不知道如何处理带有简单密码的文件,所以它只能像正常一样打开文件。如果您下载附件并通过您的文件系统打开它,那么它会提示您输入密码,但如果您只是尝试直接从电子邮件本身(Outlook、Gmail 等)打开它,将忽略密码并打开它了。 我决定做的就是将文件放入 zip 存档中,然后为其添加密码。希望电子邮件 programs/apps 不要忽略它,或者至少当您尝试从存档中打开文件时它会提示您输入密码,因为您不再从电子邮件本身打开它。

长话短说,是导致我出现问题的电子邮件 programs/apps 而不是我的实际代码。

遇到类似问题(但使用 c# 编译并通过电子邮件发送 Excel 文件)后,我在保存文件之前保护了工作sheet,而不是保护工作簿。

当从电子邮件(或任何其他方式)打开文件并尝试编辑单元格时,会显示一条警告,提示 sheet 受到保护,read-only 直到它不受密码保护.