我使用java mail api向outlook发送邮件。我可以发送纯文本和html内容邮件,但是当我将内容类型设置为text / richtext但我只接收纯文本邮件时。
任何机构都可以建议如何发送富文本邮件吗?这是我试过的:
// the parent or main part if you will
Multipart mainMultipart = new MimeMultipart("related");
// this will hold text and html and tells the client there are 2 versions of the message (html and text). presumably text
// being the alternative to html
Multipart htmlAndTextMultipart = new MimeMultipart("alternative");
// set html
MimeBodyPart htmlBodyPart = new MimeBodyPart();
htmlBodyPart.setContent("Hi", "text/richtext");
htmlAndTextMultipart.addBodyPart(htmlBodyPart);
MimeBodyPart htmlAndTextBodyPart = new MimeBodyPart();
htmlAndTextBodyPart.setContent(htmlAndTextMultipart);
mainMultipart.addBodyPart(htmlAndTextBodyPart);
message.setContent(mainMultipart);
答案 0 :(得分:1)
您可能会对text/richtext和text/rtf
感到困惑这些是两种不同的格式,与HTML无关。
答案 1 :(得分:0)
首先 - 尝试添加richtext作为内容,而不是明文:
{\rtf1\ansi\deff0 {\fonttbl {\f0 Courier;}}
{\colortbl;\red0\green0\blue0;\red255\green0\blue0;}
This line is the default color\line
\cf2
\tab This line is red and has a tab before it\line
\cf1
\page This line is the default color and the first line on page 2
}
在代码中它可能看起来像
htmlBodyPart.setContent("{\\rtf1\\ansi\\deff0 {\\fonttbl {\\f0 Courier;}}\r\n" +
"{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;}\r\n" +
"This line is the default color\\line\r\n" +
"\\cf2\r\n" +
"\\tab This line is red and has a tab before it\\line\r\n" +
"\\cf1\r\n" +
"\\page This line is the default color and the first line on page 2\r\n" +
"}", "text/richtext");
然后你可能想要考虑实际提供替代文本 - 所以你可以有两个不同的版本。
最后,使用允许您查看收到消息的MIME源的电子邮件客户端很有帮助 - 就像Mozilla Thunderbird一样。