gpt4 book ai didi

java - 使用 JavaMail Api 在电子邮件中发送阿拉伯字母等外来字符

转载 作者:行者123 更新时间:2023-12-01 13:08:17 25 4
gpt4 key购买 nike

我使用 Velocity Engine 作为模板引擎来发送电子邮件。电子邮件模板位于 .vm 文件中,我设置了我想要设置的任何变量并使用 JavaMail api 发送电子邮件。对于英语来说,这一切正常。但对于阿拉伯语,我无法正确识别字母。

请注意,我已在 html 格式中设置了内容类型 utf-8,也在 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);

以下是邮件发送代码。可以看到我在设置text的时候设置了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");

最佳答案

Template t = ve.getTemplate("email_template.vm", "UTF-8"); 

成功了

关于java - 使用 JavaMail Api 在电子邮件中发送阿拉伯字母等外来字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23102092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com