使用spring框架风中的javamail发送邮件,遇到了一些问题。其中出现发送的邮件没有主题,没有收件人,内容显示乱码,这个问题困扰了一段时间。如在正文内容中出现:
这个是因为jar包的问题。没有使用标准版的javamail.jar,而是项目中,加载了geronimo-javamail_1.4_spec-1.3.jar这个包导致的。
还有一个就是附件中文的问题。只需要在addAttachment方法中,对中文做转换解码即可。如
------=_Part_28_672081.1331004489329
Content-Type: multipart/related; boundary="----=_Part_29_21386462.1331004489329"
------=_Part_29_21386462.1331004489329
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
=?utf8?B?suLK1KOho6GjoQ==?=
------=_Part_29_21386462.1331004489329--
------=_Part_28_672081.1331004489329--
这个是因为jar包的问题。没有使用标准版的javamail.jar,而是项目中,加载了geronimo-javamail_1.4_spec-1.3.jar这个包导致的。
还有一个就是附件中文的问题。只需要在addAttachment方法中,对中文做转换解码即可。如
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper(mimeMessage,true,"utf-8");
//.....
try{
if(isAttachment){
helper.addAttachment(MimeUtility.encodeWord(key), file);
}else{
helper.addInline(MimeUtility.encodeWord(key), file);
}
}catch(UnsupportedEncodingException e){
log.debug("附件中文转码错误");
e.printStackTrace();
}