使用JavaMail发送超文本格式的邮件正文时中文乱码?

blackhost 2005-01-19 04:59:48
代码如下
message.setSubject(subject);

MimeMultipart mp = new MimeMultipart();
mp.setSubType("related");

MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setHeader("Content-Type", "text/html; charset=GBK");
String html = "<html>"
+ "<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=GBK\"><title>"
+ "标题"+ "</title></head>"
+ "<body>" + "正文" + "</body>"
+ "</html>";

mbp1.setContent(html, this.getMessageMimeType());

mp.addBodyPart(mbp1);
message.setContent(mp);
message.setSentDate(new Date());
Transport transport = session.getTransport("smtp");
//验证用户
transport.connect(this.getMailhost(), this.getUsername(), this
.getPassword());
//发送邮件
transport.sendMessage(message, message
.getRecipients(Message.RecipientType.TO));
transport.close();

发送邮件后用foxmail看邮件发现邮件中的中文都是文号!
...全文
274 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlhacoo 2005-01-20
  • 打赏
  • 举报
回复
String html = "<html>"
+ "<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=8859_1\"><title>"
+ "标题"+ "</title></head>"
+ "<body>" + "正文" + "</body>"
+ "</html>";

html = new String(html .getBytes("8859_1"));
blackhost 2005-01-20
  • 打赏
  • 举报
回复
解决问题了!,原来是 mbp1.setContent(html, this.getMessageMimeType())的原因,没有制定编码格式,改为
mbp1.setContent(html, "text/html; charset=GBK")就可以了!呵呵
blackhost 2005-01-20
  • 打赏
  • 举报
回复
我发的是邮件格式的正文,发送后客户端收到的东西是

<html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><title>?????????</title></head><body>????</body></html>

redex 2005-01-19
  • 打赏
  • 举报
回复
Javamail中的常见中文乱码问题与解决办法(综合):
http://blog.csdn.net/shaokun305/archive/2004/12/24/227425.aspx

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧