我使用速度引擎作为模板引擎发送电子邮件。电子邮件模板在.vm文件中,我设置了使用JavaMail api设置和发送电子邮件的任何变量。对于英语来说,这一切都很好。但对Arabice来说,我没有正确地理解这些字母。
注意,我已经将内容类型utf-8设置为html格式,并在Java代码中设置了内容类型。
<html>
<head><meta charset="utf-8"></head>...而且,我没有使用Spring的奢侈,所以不能使用VelocityEngineUtils。
VelocityEngine ve = new VelocityEngine();
ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
ve.setProperty("classpath.resource.loader.class",ClasspathResourceLoader.class.getName());
ve.init();
Template t = ve.getTemplate("email_template.vm");
VelocityContext context = new VelocityContext();
context.put("variable", "param");
StringWriter writer = new StringWriter();
t.merge(context, writer);以下是邮件发送代码。您可以看到,我在设置文本时设置了UTF-8字符编码。
MimeMessage message = new MimeMessage(session);
message.setSender(new InternetAddress("senderEmail@gmail.com", "Test application"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("receipant@gmail.com"));
message.setSubject("Testing Subject");
message.setText(writer.toString(),"UTF-8", "html");发布于 2014-04-16 07:20:37
Template t = ve.getTemplate("email_template.vm", "UTF-8"); 成功了
https://stackoverflow.com/questions/23102092
复制相似问题