/**
* 格式化 Name <email@address.com> 的地址
* @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 <%2$s>", MimeUtility.encodeText(name, "UTF-8", "B"), email);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return email;
}
上面的函数用来格式化一个类似 Name <email@test.com> 的收件人或发件人地址。
解决名字乱码主要是其中一句:
MimeUtility.encodeText(name, "UTF-8", "B")
由于Email的规范,在smtp传输中不可使用中文字符。所以可以使用内置类的MimeUtility方法encodeText将收件人、发件人名字编码即可。编码方式有两种:"B"代表Base64、"Q"代表QP(quoted-printable)方式。
注意:不能将名字和email地址一起编码,如直接编码 "Name <email@test.com>" 后当做收件人就会出错。
注意:Mail的Subject和Content不需要我们显式的编码,在Set的时候这两项会被javax.mail自动编码。
上面的编码中指定了"UTF-8"字符集,是因为我的来源字符串在DB或者.properties文件中的都是UTF-8编码存储的。如果您的来源字符串字符集不一致,请修改成相应的。(直接写在源代码中的中文编码是"iso-8859-1")
分享到:
相关推荐
基于javax.mail的邮件发送测试工具
javax.mail发送邮件
基于Maven的javax.mail发送邮件例子程序 pom.xml添加依赖jar: <groupId>javax.mail <artifactId>mail ${javamail.version} </dependency> <javamail.version>1.4.1</javamail.version> /* 功能:...
通过java扩展包javax.mail-1.4.4.jar实现邮件发送功能。 import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart...
javax.mail.jar-Java发送邮件API。Apache Email基于javax.mail做了一个开源项目,参见:http://commons.apache.org/proper/commons-email/
采用javax.mail发送邮件,可以发送附件
赠送jar包:javax.mail-1.5.6.jar; 赠送原API文档:javax.mail-1.5.6-javadoc.jar; 赠送源代码:javax.mail-1.5.6-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.5.6.pom; 包含翻译后的API文档:javax.mail...
赠送jar包:javax.mail-1.6.2.jar; 赠送原API文档:javax.mail-1.6.2-javadoc.jar; 赠送源代码:javax.mail-1.6.2-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.6.2.pom; 包含翻译后的API文档:javax.mail...
使用javax.mail发送邮件,协议为smtp,依赖版本为1.4.7
JAVA发送邮件demo 代码 及jar包 javax.mail.jar JAVA发送邮件demo 代码 及jar包 javax.mail.jar
附件中主要使用javax.mail.jar以及activation.jar进行邮件的发送,demo中编写的方法适用于多收件人、多抄送人、多密送人、多附件格式。运行代码前需修改邮件用户名密码等信息。
通过错误描述我们发现java.lang.NoClassDefFoundError: javax/mail/MessagingException,主要说找不到这个类。通过查询发现是缺少javax.mail-api-1.6.2.jar和activation-1.1.1.jar包。在maven上下载即可
JSP发送邮件实例 利用javax.mail和java.activation这两个包. JSP发送邮件实例 利用javax.mail和java.activation这两个包.
赠送jar包:javax.mail-1.5.6.jar; 赠送原API文档:javax.mail-1.5.6-javadoc.jar; 赠送源代码:javax.mail-1.5.6-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.5.6.pom; 包含翻译后的API文档:javax.mail...
在Oracle 11.2.0.4中调用 javax.mail 发送邮件时可能会遇到以下错误: ORA-29532: Java call terminated by uncaught Java exception: javax.mail.MessagingException: IOException while sending message; nested ...
javax.mail-1.6.0.jar包及移入maven仓库语句
转载的资源,java语言写的,利用javax.mail写的上传下载文件的source代码,利用stmp发送邮件,利用pop3接收邮件。一般能上网情况下都可以运行成功,但是注意在公司里由于公司经常会进行一些限制,所以有时候会连接...
发邮件程序需要的:javax.mail包
JDK官方的Java Mail工具,可实现收发邮件。
发送邮件时这个包没导入报错javax.mail.jar!