700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java mail 发件人昵称 Java使用javax.mail发送邮件 解决收件人 发件人名字乱码问题...

java mail 发件人昵称 Java使用javax.mail发送邮件 解决收件人 发件人名字乱码问题...

时间:2022-03-11 09:53:01

相关推荐

java mail 发件人昵称 Java使用javax.mail发送邮件 解决收件人 发件人名字乱码问题...

/**

* 格式化 Name 的地址

* @param name 名字

* @param email Email地址

* @return 格式化的地址

*/

public static String formatAddress(String name, String email) {

if (StringHelper.isNullOrEmpty(name)) {

return email;

}

try {

return String.format("%1$s ", MimeUtility.encodeText(name, "UTF-8", "B"), email);

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return email;

}

上面的函数用来格式化一个类似 Name 的收件人或发件人地址。

解决名字乱码主要是其中一句:

MimeUtility.encodeText(name, "UTF-8", "B")

由于Email的规范,在smtp传输中不可使用中文字符。所以可以使用内置类的MimeUtility方法encodeText将收件人、发件人名字编码即可。编码方式有两种:"B"代表Base64、"Q"代表QP(quoted-printable)方式。

注意:不能将名字和email地址一起编码,如直接编码 "Name " 后当做收件人就会出错。

注意:Mail的Subject和Content不需要我们显式的编码,在Set的时候这两项会被javax.mail自动编码。

上面的编码中指定了"UTF-8"字符集,是因为我的来源字符串在DB或者.properties文件中的都是UTF-8编码存储的。如果您的来源字符串字符集不一致,请修改成相应的。(直接写在源代码中的中文编码是"iso-8859-1")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。