Smtp 如何获取java.io.InputStream的编码
我有一个服务,它获取java.io.InputStream和其中的数据来构建mime消息,并在SMTPServer的帮助下将其发送到给定的地址。问题是,传入电子邮件的字符编码不好, 它无法发送以下UTF8字符(例如:ÖÜß),但仅在主题中,消息buddy是ok。 数据输入处的代码如下所示:Smtp 如何获取java.io.InputStream的编码,smtp,inputstream,mime-message,mail-sender,Smtp,Inputstream,Mime Message,Mail Sender,我有一个服务,它获取java.io.InputStream和其中的数据来构建mime消息,并在SMTPServer的帮助下将其发送到给定的地址。问题是,传入电子邮件的字符编码不好, 它无法发送以下UTF8字符(例如:ÖÜß),但仅在主题中,消息buddy是ok。 数据输入处的代码如下所示: public void data(InputStream data) throws IOException { Session s = Session.getDefaultInstance(new
public void data(InputStream data) throws IOException {
Session s = Session.getDefaultInstance(new Properties());
try {
System.setProperty("mail.mime.charset", "UTF8");
MimeMessage m = new MimeMessage(s, data);
.
.
问题是,如何检查从这个输入流输入的数据的编码?我想知道,当此服务从其他应用程序获取数据时,数据已经损坏(编码错误),或者问题在于此服务的代码中,此mime消息将被删除。
我知道InputStreamReader有一个方法“getEncoding()”,但在这段代码中没有InputStreamReader,只有InputStream
其他一些信息:我已经设置了默认的文件编码。默认mime消息编码将从默认系统编码设置。
之后,我将“mime.mail.charset”设置为一个系统属性,也设置在sprongbean定义中。另一方面,我尝试使用mimemessage.setSubject(stringsubject,编码e)的重载版本设置主题。
另一方面,我使用JavaMailSenderImpl,在这里我还设置了编码
(mailSender.setDefaultEncoding(“UTF8”);)。
我尝试了一切,我发现这是可能的,但没有任何帮助。
谢谢你提前帮助我!
如果你需要更多的代码,我可以展示给你
比尔,佩特