BodyMimePart 中的 setText() 和 setContent() 有什么区别 class

What is difference between setText() and setContent() in BodyMimePart class

这两个函数在 JavaMail API 中提供相同的结果,它们之间有什么区别?

Multipart multipart = new MimeMultipart();
BodyPart textBody = new MimeBodyPart();
textBody.setText(bodyText);
textBody.setContent(bodyText, "text/html") ;
multipart.addBodyPart(textBody);

setText(....) 类似于 setContent(..., "text/plain"),而 setContent(..., ...) 让您可以更好地控制要使用的 MIME 类型。

因此,在您的示例中,textBody.setContent(bodyText, "text/html"); 将覆盖之前的调用 textBody.setText(bodyText); 并将内容的 MIME 类型从 text/plain 更改为 text/html

假设你想发送一个平面文本然后使用setText()方法。如果你想发送html代码的内容,那么你可以去setContent()

保留一点,setText()setContent() 将相互覆盖。只需使用允许您指定字符集和文本类型的 setText() 方法。

例如:

下一行发送纯文本

plainTextPart.setText("This is plain text message", "UTF-8");

这一个会发送html content

htmlTextPart.setContent("<h1>This is plain HTML message</h1>", "text/html;charset=UTF-8");

文本消息将以 header <h1> 大小显示。