1- 出现model中的中文信息显示正常,而模板中的静态中文信息显示乱码
我的模板是用html进行编写的,而且html模板是UTF-8的,使用如下代码会出现乱码。
String text = VelocityEngineUtils.mergeTemplateIntoString(
velocityEngine, template, model);
改成如下代码即可:
---- > MimeMessageHelper help = new MimeMessageHelper(message, true, "UTF-8");
String text = VelocityEngineUtils.mergeTemplateIntoString(
velocityEngine, template, "UTF-8", model);
这样就不会出现乱码了。
2- 附件文件名 显示乱码
我是直接使用得到文件名称,使用如下代码会出现乱码。
messageHelper.addAttachment(file.getName(), file);
改成如下代码即可:这样就不会出现乱码了。
---- >
messageHelper.addAttachment(MimeUtility.encodeWord(file.getName(),"UTF-8",null), file);
附上代码:
1.pom.xml 追加 (使用的包:org.apache.velocity 和 javax.mail )
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
2. mail ( SMTP设置)
mail.properties
templatePaht 是指定了模板文件在class路径下。
a3. spring 必要Xml追加
applicationContext.xml : (MailSupportContext.xml)
4. SendMail詳細コード
commons.mail.MailData.java
commons.mail.SendMail.java
commons.mail.Impl.SendMailImpl.java
5.test code
common.mail.SendmailTest.java
本文档详细介绍了在使用Spring和Velocity发送带有中文内容的邮件时遇到的乱码问题及其解决方案。主要涉及两个方面:1. 模板中的静态中文信息显示乱码,通过设置`MimeMessageHelper`的字符集为`UTF-8`来解决。2. 附件文件名显示乱码,使用`MimeUtility.encodeWord()`方法进行编码转换。同时提供了pom.xml中所需的依赖,以及配置邮件发送的相关XML和具体代码实现。
761

被折叠的 条评论
为什么被折叠?



