Jave:带有 pdf 附件的电子邮件:没有 MIME 类型应用程序/pdf 的对象 DCH

use*_*928 5 java email

我想用 javax mail 在电子邮件中发送 pdf 文件。
下面,baos是一个ByteArrayOutputStream。

byte []  data=   baos.toByteArray();
OutputStream output = new FileOutputStream(fileName);
output.write(data);     
output.close();
DataSource source = new FileDataSource(fileName);
attachBodyPart.setDataHandler(new DataHandler(source, "application/pdf"));
attachBodyPart.setFileName(fileName);
multipart.addBodyPart(attachBodyPart);
message.setContent(multipart, "text/html");
Transport transport = session.getTransport("smtp");
transport.connect(host, from, pass);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
Run Code Online (Sandbox Code Playgroud)

当我尝试发送电子邮件时遇到此异常:

javax.mail.MessagingException:发送消息时发生 IOException;
嵌套异常是: javax.activation.UnsupportedDataTypeException:没有 MIME 类型 application/pdf 的对象 DCH

我不知道这里出了什么问题。
如果有人这样做...

提前致谢。

Jan*_*Jan 0

每次执行此操作时,我都会直接使用字节数组,而无需处理文件:

byte []  data =   baos.toByteArray();
MimeBodyPart attachBodyPart = new MimeBodyPart();
attachBodyPart.setFileName(fileName);
attachBodyPart.setDisposition(MimeBodyPart.ATTACHMENT);
attachBodyPart.setContent(data, "application/pdf");

multipart.addBodyPart(attachBodyPart);
Run Code Online (Sandbox Code Playgroud)