首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JavaMail Api发送电子邮件中的阿拉伯字母

使用JavaMail Api发送电子邮件中的阿拉伯字母
EN

Stack Overflow用户
提问于 2014-04-16 06:52:29
回答 1查看 533关注 0票数 0

我使用速度引擎作为模板引擎发送电子邮件。电子邮件模板在.vm文件中,我设置了使用JavaMail api设置和发送电子邮件的任何变量。对于英语来说,这一切都很好。但对Arabice来说,我没有正确地理解这些字母。

注意,我已经将内容类型utf-8设置为html格式,并在Java代码中设置了内容类型。

代码语言:javascript
运行
复制
<html>
 <head><meta charset="utf-8"></head>...

而且,我没有使用Spring的奢侈,所以不能使用VelocityEngineUtils

代码语言:javascript
运行
复制
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字符编码。

代码语言:javascript
运行
复制
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");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 07:20:37

代码语言:javascript
运行
复制
Template t = ve.getTemplate("email_template.vm", "UTF-8"); 

成功了

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23102092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档