5

テキストファイルから内容を読み取ってメールを送信しようとしています。

読もうとしているファイル

Line 1
Line 2
Line 3

JUnit でコードをテストしたところ、テキスト ファイルと同じ形式のメールが届きました。

Junit を使用してメールを出力する

Line 1
Line 2
Line 3

しかし、Tomcat にデプロイすると、テキスト付きのメールが届きますが、改行が認識されません。

tomcatサーバー利用時のメール出力

Line 1Line 2Line 3

ファイルの内容を読み取るために使用しているコード。

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();
        }
    }

サーバーをデバッグモードにすると、新しい行が追加されていることがわかりますfileContents.toString()

何が欠けているのかわかりません。文字セットに関連するものはありますか?私はわかりません....

4

2 に答える 2

1

Perception と nullix からの手がかりと関係があります。メールの読み方と HTML。

私の場合、「text/html」タイプのメッセージをアプリケーションに送信するメール クライアントからメールを送信してテストしていました。そのメールに返信すると、返信メールも「text/html」形式でした。したがって、/nまたは私が使用した改行タイプは省略されました。

そのため、メールを読んでいる間、「text/plain」のMIME タイプだけを読みました。そのため、このメールに返信しているときに、新しい行を印刷することができました。

于 2012-12-20T10:15:01.643 に答える
0

メール出力を読んでいると、改行がないと思うかもしれません。たとえば、'\n' を改行として書き、Windows のメモ帳でファイルを開くと、改行がないかのように表示されます。

空白文字を確認できる Notepad++ などのより洗練されたテキスト ビューアーを使用すると役立つ場合があります

于 2012-12-20T05:20:57.090 に答える