使Java邮件正文附件作为密码保护

使Java邮件正文附件作为密码保护,java,encryption,jakarta-mail,Java,Encryption,Jakarta Mail,我已经开发了一个java邮件API程序,它将发送邮件,它还附加了PDF文件,因此最终会发送一封附加了PDF文件的邮件 我想通过我的java程序本身将该PDF文件作为密码保护。例如,当邮件接收者收到邮件时,接收者单击PDF文件。此时需要出现弹出框,用户必须键入以前生成的密码才能查看该PDF文件。我正在开发功能,但似乎是与域结构。请帮帮我 messageBodyPart = new MimeBodyPart(); DataSource source = new FileDa

我已经开发了一个java邮件API程序,它将发送邮件,它还附加了PDF文件,因此最终会发送一封附加了PDF文件的邮件

我想通过我的java程序本身将该PDF文件作为密码保护。例如,当邮件接收者收到邮件时,接收者单击PDF文件。此时需要出现弹出框,用户必须键入以前生成的密码才能查看该PDF文件。我正在开发功能,但似乎是与域结构。请帮帮我

 messageBodyPart = new MimeBodyPart();
            DataSource source = new FileDataSource("D:/C_App/PDF/"+Employeeid+ ".docx");//add file path
            messageBodyPart.setDataHandler(new DataHandler(source));
            messageBodyPart.setFileName(Employeeid);//file name to be displayed
            multipart.addBodyPart(messageBodyPart);
            message.setContent(multipart);

            byte[] USER = "password 1234".getBytes();
            byte[] OWNER = "password 1234".getBytes();
            encryptPdf(DataSource source, DataSource source) throws IOException, DocumentException {
                    PdfReader reader = new PdfReader(source);
                    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(source));
                    stamper.setEncryption(USER, OWNER,
                        PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128 | PdfWriter.DO_NOT_ENCRYPT_METADATA);
                    stamper.close();
                    reader.close();
                }
            Transport.send(message);
这个代码段也给了我语法错误。任何帮助都将不胜感激。 多谢各位

encryptPdf(DataSource source, DataSource source) throws IOException, DocumentException {
                    PdfReader reader = new PdfReader(source);
                    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(source));
                    stamper.setEncryption(USER, OWNER,
                        PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128 | PdfWriter.DO_NOT_ENCRYPT_METADATA);
                    stamper.close();
                    reader.close();
                }
这是一个方法声明部分,您应该遵循java 方法声明约定,如访问范围、返回类型。 我在您的代码中看不到对encryptPdf方法的调用。
请添加您面临的异常的堆栈跟踪。在encryptedPdf线段的行中,标记上出现语法错误,请键入expected。并在堆栈中跟踪线程AWT-EventQueue-0java.lang中的about异常。错误:未解决的编译问题:我还使用此部分获取struct。这就是为什么向任何人寻求帮助。说真的,对我来说,这似乎很难实现。如果你能帮我处理代码段