直接使用MimeMessage发送中文邮件,收件人往往会收到乱码,必须在发送前做字符集的声明。例子如下:
Session
mailSession = Session.getInstance(props,
new
javax.mail.Authenticator() {
protected
PasswordAuthentication getPasswordAuthentication() {
return
new PasswordAuthentication(userName,
password);
}
});
Message
message = new MimeMessage(mailSession);
//创建新的MimeMessage邮件实例
message.setFrom(new
InternetAddress("sender@sina.com","发件人名称","utf-8"));
//设置发件人邮箱地址和名称
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("receiver@sina.com"));
//设置收件人邮箱地址
message.setSubject(MimeUtility.encodeText("中文邮件标题",
"utf-8", "B")); //生成邮件标题
String
strText="中文文件正文";
//输入邮件正文内容
message.setContent(strText,
"text/plain;charset=utf-8"); //生成邮件正文
Transport.send(message);
//发送邮件
加载中,请稍候......