我有一个javax.mail.Part,需要修改内容,所以我有这样的代码:
System.out.println(part.getContentType());
String content = (String) part.getContent();
content = content.replace("a", "b");
part.setContent(content, part.getContentType());
System.out.println(part.getContentType());
这会打印出 text/html 然后是 text/plain。我还尝试创建一个类型为 text/html 的 javax.activation.DataHandler 并调用 part.setDataHandler(dh),但 part.getContentType() 之后仍然返回 text/plain。
我可以设置内容然后调用part.setHeader("Content-Type", "text/html")。在这个 part.getContentType() 返回“text/html”之后,但这看起来像是一个 hack。
有人看过吗?处理它的最佳方法是什么?
最佳答案
Part
是一个Interface
,因此具体类的实现将决定实际发生的事情。如果您想知道幕后发生的事情,了解您发送的消息类型可能会有所帮助。
也就是说,在您的 Part
实例上调用 addHeader("Content-Type", "text/html")
是可以接受的。
关于java - javax.mail.Part 中的内容类型设置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1092727/