当我创建正文部分时,我是否应该显式地设置top mime消息的内容类型,然后设置每个正文部分?
如果是,在上面的例子中它们应该是什么?
对于html建议多部分/替代
,对于附件建议多部分/混合
,对于内联建议多部分/相关
。我正在使用所有这些,那么对于完整的消息和不同的主体部分应该是什么内容类型?
MimeMessage msg = new MimeMessage(mailSession);
MimeMultipart mpart = new MimeMultipart();
MimeBodyPart bp = new MimeBodyPart();
bp.setText("plain text and html text like<b>Test</>", CHARSET_UTF_8, MESSAGE_HTML_CONTENT_TYPE);
// add message body
mpart.addBodyPart(bp);
// adding attachment
MimeBodyPart bodyPart = new MimeBodyPart();
bodyPart.setFileName("WordFile1");
file = new File("word file");
DataSource source = new FileDataSource(file);
bodyPart.setDataHandler(new DataHandler(source));
mpart.addBodyPart(bodyPart);
// adding image inline
MimeBodyPart bodyPart2 = new MimeBodyPart();
bodyPart2.setFileName("inline image");
file2 = new File("image1");
DataSource source2 = new FileDataSource(file);
bodyPart2.setDataHandler(new DataHandler(source));
bodyPart2.setDisposition(MimeBodyPart.INLINE);
bodyPart2.setHeader("Content-ID", "Unique-CntentId");
bodyPart2.setHeader("Content-Type", "image/jpeg");
mpart.addBodyPart(bodyPart2);
// At last setting multipart In MimeMessage
msg.setContent(mpart);
通过上面的代码,我得到了正确的html文本,纯文本,内联图像和附件在正确的地方与James集成的ThunderBird。
因此,我不明白何时何地将multipart/mixed
、multipart/alternative
、multipart/related
设置为Content-Type,还是邮件服务器内部设置的?
如果我理解您想要做什么,那么您需要一个具有以下结构的消息:
multipart/mixed
multipart/alternative
text/plain - a plain text version of the main message body
multipart/related
text/html - the html version of the main message body
image/jpeg - an image referenced by the main body
application/octet-stream (or whatever) - the attachment
这意味着三个嵌套的多部分。您将需要为每个多部分件指定子类型,而不是默认的“mixed”。
多部分/混合和多部分/替代部分相对简单。Multipart/相关的部分更加复杂,您可能需要阅读RFC2387和/或找到一些其他教程来帮助您。
我正在全互联网上尝试所有解决方案,但我无法获得它。 我试图连接使用php curl到一个外部API发送json数据,但我不能设置content_type。 答复: 旋度是活动的 数组(26){["url"]= 7. 无法连接到https://example.com端口xxx:连接被拒绝 答复:bool(假) ... 如果我尝试通过SoapUi: HTTP/1.1 200 Vary:Origin V
问题内容: 我正在使用Flask,并且从get请求返回一个XML文件。如何将内容类型设置为xml? 例如 问题答案: 尝试这样: 实际的Content-Type基于mimetype参数和字符集(默认为UTF-8)。
我试图设置请求的内容类型标题,但是okhttp会自动将内容类型添加到标题列表的末尾,并将其设置为application/json;charset=UTF-8,尽管我只是将其设置为application/json。 还有其他人经历过吗?如果是的话,我可以提出请求。 我发现okhttp没有通过fiddler正确发送此标头。
我无法在HttpClient上设置内容类型。我接着问了一个问题:如何为HttpClient请求设置Content-Type头?但还是没有运气。 所以我怎么能强迫它,这样它就真的添加了它呢?提前道谢。
我正在使用Flask,并从get请求返回一个XML文件。如何将内容类型设置为xml? 例如。
我试图向另一个接受内容类型“application/json-patch+json”的API发出补丁rest请求。我正在使用Spring的webclient,但我无法让它工作。我不断得到“415不支持的媒体类型” 我试过下面的; 我也试过: 对于这两种情况,我看到以下错误; 它似乎变成了'application/x-www-form-urlencoded;charset=utf-8',是否可能对此