gpt4 book ai didi

java - 将 Java Mail Body 附件设置为密码保护

转载 作者:行者123 更新时间:2023-12-02 10:52:28 25 4
gpt4 key购买 nike

我开发了一个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();
}
  1. 这是方法声明部分,你应该遵循java方法声明约定,例如访问范围、返回类型。
  2. 我在您的代码中看不到对 encryptPdf() 方法的调用。

关于java - 将 Java Mail Body 附件设置为密码保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52061326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com