java - javax.mail.Part 中的内容类型设置不正确

标签 java email jakarta-ee mime-types

我有一个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/

相关文章:

android - 检查android中是否设置了任何电子邮件帐户

jakarta-ee - java.lang.ClassNotFoundException : javax. servlet.jsp.el.ImplicitObjectELResolver$ImplicitObjects

java - 在 JUnit 测试中给定 JWT token 时,MockMVC 不返回任何值

java - 请求的资源在 Servlet、Tomcat7 中不可用

PHPMailer - 邮件直接变成垃圾邮件

java - EJB 3.0 TimerService - 在每个月的第一天运行计时器

tomcat - 使用 Container Managed Security 从主页登录

java - 针对不同区域设置的 Selenium Webdriver 测试

java - 我需要将一个 int 变量转换为 double

php - Laravel 不从地址发送