2012-12-20 5 views
5

Ich versuche, eine E-Mail durch Lesen von Inhalten aus der Textdatei zu senden.Neue Zeile Befehl ( n) funktionierte nicht, während Handline-Dateien mit TomCat

Datei Ich versuche

Line 1 
Line 2 
Line 3 

ich den Code mit JUnit getestet haben zu lesen und ich erhalte die Mail mit der gleichen Formatierung wie in der Textdatei.

Output Mail Junit mit

Line 1 
Line 2 
Line 3 

Aber wenn in Tomcat eingesetzt, erhalte ich eine E-Mail mit dem Text aber neue Linien werden nicht erkannt zu werden.

Output Mail bei der Verwendung von Tomcatbediener

Line 1Line 2Line 3 

-Code, dass ich den Inhalt der Datei zu lesen verwenden.

private String readFile(String pathname) throws IOException { 
     File file = new File(pathname); 
     StringBuilder fileContents = new StringBuilder((int) file.length()); 
     Scanner scanner = new Scanner(file); 
     String lineSeparator = System.getProperty("line.separator"); 

     try { 
      while (scanner.hasNextLine()) { 
       fileContents.append(scanner.nextLine() + lineSeparator); 
      } 
      return fileContents.toString(); 
     } finally { 
      scanner.close(); 
     } 
    } 

Ich habe den Server im Debug-Modus setzen, und ich kann die neue Linie zu sehen ist, in fileContents.toString()

hängten immer ich bin nicht sicher, was ich fehle. Alles in Bezug auf den Zeichensatz? Ich bin mir nicht sicher ....

+0

Wie ich vermute, LineSeparator Wert kann nicht erhalten, wie Sie in Tomcat erwarten. – iMBMT

+0

Linux und Windows haben unterschiedliche Zeilentrenner –

+1

Wie liest du die E-Mail? Könnte dein Mail-Client die neuen Zeilen überlisten? – Perception

Antwort

1

Es hat etwas helfen sehen, können mit Hinweis von Perception und nullix zu tun. Wie die Mail gelesen wird und das HTML.

In meinem Fall habe ich getestet, indem ich E-Mail von einem E-Mail-Client schickte, der "text/html" Nachrichten an meine Anwendung sendete. Wenn ich also auf diese Mail antworte, hatte die Antwortmail auch das Format "text/html". Daher wurde der /n oder was auch immer Line Feed-Typ, den ich verwendete, weggelassen.

So beim Lesen der Mail habe ich nur gelesen "Text/plain" Mime-Typ. Während ich auf diese Mail antwortete, konnte ich die neue Zeile drucken lassen.

0

Vielleicht die Art, wie Sie die Mail-Ausgabe lesen, lässt Sie denken, dass die Newline nicht da ist. Wenn Sie z. B. '\ n' als Zeilenumbruch schreiben und die Datei im Windows-Editor öffnen, sieht es so aus, als wäre der Zeilenumbruch nicht vorhanden.

anspruchsvolleren Text-Viewer wie Notepad ++, wo Sie das Leerzeichen könnte