- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
下面的程序显示了 HTML 多部分 MIME 类型的意外返回值。为什么这个程序打印的是 text/plain
而不是 text/html
?
public class Main {
public static void main(String[] args) throws javax.mail.MessagingException, java.io.IOException {
javax.mail.internet.MimeBodyPart mime_body_part = new javax.mail.internet.MimeBodyPart();
mime_body_part.setContent("<h1>foo</h1>", "text/html");
System.out.println(mime_body_part.getContentType());
}
}
我尝试了许多替代方法,包括设置一个包装在 DataHandler
中的 ByteArrayDataSource
,但无济于事。当我尝试使用 MimeMessage
而不是 MimeBodyPart
时,也会发生同样的事情。
在 Linux 上编译和运行:
javac -classpath .:activation.jar:mail.jar Main.java
java -classpath .:activation.jar:mail.jar Main
最佳答案
调用 MimeMessage.saveChanges()
在封闭的消息上,它将通过将 MIME 结构级联到对您的正文部分的 MimeBodyPart.updateHeaders()
的调用来更新 header 。正是这个 updateHeaders
调用将内容类型从 DataHandler
传输到部件的 MIME Content-Type
header 。
当您设置 MimeBodyPart
的内容时,JavaMail 在内部(并不明显)会创建一个 DataHandler
对象来包装您传入的对象。该部分的 Content -Type
header 不会立即更新。
在您的测试程序中没有直接的方法可以做到这一点,因为您没有包含 MimeMessage
并且 MimeBodyPart.updateHeaders()
不是 公开
.
这是一个说明预期和意外输出的工作示例:
public class MailTest {
public static void main( String[] args ) throws Exception {
Session mailSession = Session.getInstance( new Properties() );
Transport transport = mailSession.getTransport();
String text = "Hello, World";
String html = "<h1>" + text + "</h1>";
MimeMessage message = new MimeMessage( mailSession );
Multipart multipart = new MimeMultipart( "alternative" );
MimeBodyPart textPart = new MimeBodyPart();
textPart.setText( text, "utf-8" );
MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent( html, "text/html; charset=utf-8" );
multipart.addBodyPart( textPart );
multipart.addBodyPart( htmlPart );
message.setContent( multipart );
// Unexpected output.
System.out.println( "HTML = text/html : " + htmlPart.isMimeType( "text/html" ) );
System.out.println( "HTML Content Type: " + htmlPart.getContentType() );
// Required magic (violates principle of least astonishment).
message.saveChanges();
// Output now correct.
System.out.println( "TEXT = text/plain: " + textPart.isMimeType( "text/plain" ) );
System.out.println( "HTML = text/html : " + htmlPart.isMimeType( "text/html" ) );
System.out.println( "HTML Content Type: " + htmlPart.getContentType() );
System.out.println( "HTML Data Handler: " + htmlPart.getDataHandler().getContentType() );
}
}
关于java - 如何将 MimeBodyPart ContentType 设置为 "text/html"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5028670/
我正在尝试将一些模型从一个 Django 应用程序迁移到另一个应用程序,并基于这个问题 How do I migrate a model out of one django app and into
我正在开发我的 android 项目,我正在创建一个请求函数来上传文件,该请求如下所示, httpClient.put(uri) { body = MultiPartFormDataConte
我正在尝试学习如何使用 ContentTypes 框架,我似乎无法找到我自己的应用程序。 文档 have clear instructions用于从 django.contrib.sites 导入模型
我最近尝试将一些装置加载到我的数据库中。当我运行服务器并加载各种页面时,虽然出现错误: Caught DoesNotExist while rendering: ContentType matchin
我用 async await 写了一些简单的代码,但是当我尝试运行它时,编译器抛出一个 System.InvalidOperationException。 完整的错误信息是: Unhandled Ex
微软有篇文章:http://support.microsoft.com/kb/193998/zh-cn,用doc读取和显示二进制数据,《怎样读取二进制文件》,没测试,懒得编译dll &nb
本文整理了Java中okreplay.YamlRecordedResponse.contentType()方法的一些代码示例,展示了YamlRecordedResponse.contentType()
写在前边 最近在写 OAuth2 对接的代码,由于授权服务器(竹云BambooCloud IAM)部署在甲方内网,所以想着自己 Mock 一下授权方的返回体,验证一下我的代码。我这才踩到了坑…… 故事
我的数据迁移文件中有这个: def set_target_user(apps, schema_editor): LogEntry = apps.get_model('auditlog', 'L
如何在 Django 单元测试中使用 GenericRelations? 我在互联网上阅读并尝试了无数建议,但无济于事。 这个很有前途Problems with contenttypes when l
我正在设计一个 api,它返回一个从第三方服务获取的图像 url。 我的问题是,对于所有媒体,我都使用我所谓的“媒体对象” { "ConetetType": "image/jpeg", "href
我有这些模型: class App(models.Model): name = models.CharField(max_length=100) class ProjectA(models.Mod
什么时候创建新的 ContentType?我如何自己触发它? 我进行了大量迁移、创建新模型等。完成所有操作后,将进行最终的数据迁移,将这些新对象的权限分配给已拥有相关权限的任何组。 (特此“相关权限”
在我们基于 ASP.NET Core 的 Web 应用程序中,我们需要以下内容:某些请求的文件类型应获得自定义 ContentType 的响应。例如。 .map应映射到 application/jso
我正在使用 Apache 和 mod_wsgi 将 Django 1.10 项目部署到 Ubuntu 服务器上。我收到以下无法解决的 500 错误: RuntimeError: Model class
我有两个表,Content 和 ContentType 每个内容都有一种内容类型 每种内容类型可能包含在许多内容中。 这是我的模型: @Entity @Table(name = "content")
我正在尝试使以下内容适合 Django ORM。有一个 Publish 模型来管理不同类型内容的发布(其他模型)。这样我就可以轻松地执行 Publish.objects.all() 并按日期排序。我做
我想从 ContentType 实例中获取对象的查询集,然后能够过滤它们。从文档中,可以到 get()一个对象使用: ct.get_object_for_this_type(**kwargs) 如何制
假设这是用户照片的模型: class Photo(models.Model): user = models.ForeignKey(User) title = models.CharFi
This web page有一个 ASP.NET MVC 代码示例,其中包括以下行: [Route("sitemap.xml")] public ActionResult SitemapXml() {
我是一名优秀的程序员,十分优秀!