使Java Mail Body附件作为密码保护

时间:2018-08-28 15:18:13

标签: java encryption javamail

我已经开发了一个Java Mail 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);

此代码段也给了我语法错误。任何帮助,将不胜感激。 谢谢。

1 个答案:

答案 0 :(得分:1)

large_client_header_buffers
  1. 这是方法声明的一部分,您应该遵循java 方法声明约定,例如访问范围,返回类型。
  2. 在您的代码中看不到对cryptoPdf()方法的调用。