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

Java 附加到电子邮件的受密码保护的文件,不要求输入密码,java,email-attachments,Java,Email Attachments,让我知道如果你需要更多的细节,因为我不知道我应该把一些帮助 因此,我有一个受密码保护的excel文件,在代码中作为电子邮件附件发送。我用密码保护代码中的文件。本地保存的文件在我打开文件时要求输入密码。但当我通过发送的电子邮件打开文件时,它并不要求输入密码,而是直接打开。我在网上搜索,但什么也没找到 这是我写文件和发送电子邮件的代码 HSSFWorkbook workbook = new HSSFWorkbook(poi,true); workbook.writeProtectWorkbook("

让我知道如果你需要更多的细节,因为我不知道我应该把一些帮助

因此,我有一个受密码保护的excel文件,在代码中作为电子邮件附件发送。我用密码保护代码中的文件。本地保存的文件在我打开文件时要求输入密码。但当我通过发送的电子邮件打开文件时,它并不要求输入密码,而是直接打开。我在网上搜索,但什么也没找到

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

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


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


长话短说,造成我问题的是电子邮件程序/应用程序,而不是我的实际代码。

在出现类似问题后,使用c编译并通过电子邮件发送Excel文件,我在保存文件之前保护了工作表,而不是保护工作簿


当通过电子邮件或任何其他方式打开文件并试图编辑单元格时,将显示一条警告,说明该工作表受保护且为只读,直到使用密码解除保护为止。

您需要构造一个简单的示例并发布一些代码。@Lalaland我添加了用于密码保护文件的代码,然后添加了用于密码保护的代码通过电子邮件发送文件。答案很简单,发送的文件不是加密文件,除非您在发送前对其进行了专门解密。通过在加密前、加密后和接收到file@MJSG我不解密它。我只是想设置它,这样当有人试图打开文件时,它会在用户看到文件之前提示用户输入密码。我只希望用户必须输入密码,我不希望他们有任何类型的加密密钥或任何类似的东西。如果我按照你的建议做,这会改变他们解密它的方式吗?作为前言,我是一名入门级开发人员,如果我说的没有意义,我很抱歉。@就我所知,电子邮件程序没有必要的知识来解密附件的内容。确保您正在发送加密内容。
Email email = new Email(to, from , subject, body.toString(), true);
email.attachFile(myExcelFile);
email.send();