Smtp 如何获取java.io.InputStream的编码

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

我有一个服务,它获取java.io.InputStream和其中的数据来构建mime消息,并在SMTPServer的帮助下将其发送到给定的地址。问题是,传入电子邮件的字符编码不好, 它无法发送以下UTF8字符(例如:ÖÜß),但仅在主题中,消息buddy是ok。 数据输入处的代码如下所示:

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”);)。 我尝试了一切,我发现这是可能的,但没有任何帮助。 谢谢你提前帮助我! 如果你需要更多的代码,我可以展示给你

比尔,佩特