Java编码Base64,MimeBodyPart附件

我有一个用Base64编码的PDF文件,现在我想发送PDF并允许从邮件打开。

我正在阅读此问题,但对我不起作用https://stackoverflow.com/a/9124625/811293

  Message message = new MimeMessage(session);
  message.setfrom(new Internetaddress(from));
  message.setSentDate(new Date());
  message.setRecipients(Message.RecipientType.TO,Internetaddress.parse(sendTo));
  message.setSubject("Subject - " + new Date());
  Multipart multipart = new MimeMultipart();

  MimeBodyPart mimeBodyPart = new MimeBodyPart();
  mimeBodyPart.setContent("contentMessage","text/html");  // YES FOR NOW SIMPLE MESSAGE
  multipart.addBodyPart(mimeBodyPart);


  MimeBodyPart attachmentOnFly = new MimeBodyPart();

  /*
  //In the future the PDF will be created on Fly (Will not be stored)
  InputStream inputStream = new FileInputStream("/path/to/encoded/Base64/file.pdf");//new ByteArrayInputStream("Bytes from source".getBytes());
  ByteArrayDataSource byteArrayDataSource = new ByteArrayDataSource(inputStream,"application/pdf");
  attachmentOnFly.setDataHandler(new DataHandler(byteArrayDataSource));
   */


  attachmentOnFly.attachFile(new File("/path/to/encoded/Base64/file.pdf"));
  attachmentOnFly.setHeader("Content-Type","application/pdf");
  attachmentOnFly.setHeader("Content-Transfer-Encoding","base64");
  attachmentOnFly.setDisposition(Part.ATTACHMENT);
  attachmentOnFly.setfileName("myFileName.pdf");
  multipart.addBodyPart(attachmentOnFly);

  message.setContent(multipart);
  Transport.send(message);

我的问题是,当接收到邮件时,我无法打开PDF,但是使用Telnet替代方法是可行的。

如何发送随函附送的随函附送的Base64 PDF?

liusha7258322 回答:Java编码Base64,MimeBodyPart附件

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2981863.html

大家都在问