当前位置: 首页 > 面试题库 >

Java Mail API-编码问题

漆雕令秋
2023-03-14
问题内容

我正在使用Java Mail
API,并且正在尝试通过Gmail的SMTP发送电子邮件。我的程序如何工作:java.util.Scanner类用于获取用户输入-
我正在询问用户要在邮件发送类中使用的各种参数;它执行以下操作:

Message mailMessage = new MimeMessage(session);
mailMessage.setFrom(new InternetAddress("example@example.com"));
mailMessage.setRecipients(Message.RecipientType.TO,InternetAddress.parse(mail.getTo()));
mailMessage.setSubject(mail.getSubject());
mailMessage.setText(mail.getMessage());
Transport.send(mailMessage);

只要我使用ASCII符号/字符,一切都可以正常工作。但是每当我想使用“国家特定”字符(例如[õäöü])时,我都会得到一堆看起来很奇怪的符号…

到目前为止,我使用过的技术(对我不起作用):

setHeader("Content-Type", "text/plain; charset=UTF-8");
setHeader("Content-Encoding","ISO-8859-9");
setContent(message, "text/plain; charset=iso-8859-2");

注意:当执行System.out.println()以显示要发送的消息时,所有内容都将正确显示在IDE中。

编辑:例如,当发送的邮件正文为[õäöü]时,它在Gmail中显示为[ä„” ??]。

编辑:mailMessage.setText(MimeUtility.encodeText(mail.getMessage(), "UTF-8", "Q"));使用时,Gmail中的输出如下:

"=?UTF-8?Q?=C3=A4=E2=80=9E=E2=80=9D=EF=BF=BD;=0D=0A?="

另一个编辑:有趣的是,当我这样做时:mailMessage.setText(strVar + "õäöü", "ISO-8859-1");
它实际上在我的电子邮件中很好地附加了“õäöü”(但字符串的第一部分[strVar]仍然充满了?和[])。


问题答案:

基本上,我的代码可以正常工作。是cmd,不能处理非ascii字母。我使用蝙蝠文件访问罐子。我想我当时将要制作一些GUI,谢谢大家的回答。



 类似资料:
  • 最近,我们正在将java构建作业从serverA迁移到serverB,java源代码(包含中文字符)在使用Ant的原始serverA上编译良好( ),但是,当我们将相同的代码签出到新的serverB并运行相同的Ant脚本时,出现了编码错误,如“用于编码GBK的Unmappable character”(Unmappable character for encoding GBK)。(JDK版本相同)

  • 我有一个(非常简单的)java Spring Boot/REST服务,它从输入中呈现PDF并使用IntelliJ对其进行测试。 我使用pdfbox作为创建此类pdf的工具。 一个特点是,除了它想要的常规内容外,客户端还可以将附件作为字节[]提供。 当用户尝试该服务时,最终文档只有附件部分的空白页。 使用IntelliJ和HTTP REST客户端进行了尝试,但遇到了相同的问题 当我注意到使用post

  • 当从其中一个web服务获取数据时,引号(“)将显示为(?)当我使用Rest模板时。我在chrome上的postman中测试了web服务,并给出了正确的字符。我尝试编码UTF-8,但没有成功。 我检查了以下是从Web服务提供商编码: 高速缓存控制→私有连接→关闭内容编码→gzip内容长度→3407内容类型→text/xml; charset=ISO-8859-1日期→周三,2015 13:35:53

  • 问题内容: 我尝试使用java.io.FileReader读取一些文本文件并将其转换为字符串,但是我发现结果编码错误并且根本不可读。 这是我的环境: Windows 2003,操作系统编码:CP1252 Java 5.0 我的文件是UTF-8编码或CP1252编码的,其中一些(UTF-8编码的文件)可能包含中文(非拉丁)字符。 我使用以下代码来完成我的工作: 上面的代码不起作用。我发现FileRe

  • 我在gradle运行junit测试时遇到了一个问题。从stacktrace来看,这似乎是一个编码问题。 我已将编码设置为 谢谢

  • 我正在尝试通过golang使用JSON API,但是在获得响应时遇到了可怕的时间。我正在使用示例 JSON 终结点 http://jsonplaceholder.typicode.com/posts/1,该终结点返回 这是我的代码,来自这个堆栈溢出答案: 这是输出: 我知道endpoint有效。这是编码问题还是其他问题?我在Mac OSX 10.11.15上。 谢谢

  • 我有这样一个csv文件 我在读书

  • 我在PHP中有一个CSV字符串,它被mb_detect_编码检测为UTF8。此字符串将写入文件。当我在文本编辑器(程序员记事本)中打开它时,编辑器会说它是UTF8无标记的,当我将编码更改为ANSI时,它会在Excel中正确打开。我想用ANSI编写这个文件,这样在Excel中打开它之前就不必在文本编辑器中进行转换。尝试使用以下命令: utf8_解码($xhtml) iconv(“UTF-8”、“Wi