teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

補足を追加

2020/09/12 00:40

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -12,4 +12,12 @@
12
12
  message = message.replace(/\r\n/g, "\n");
13
13
  ```
14
14
 
15
- などとして、`\n`ひとつだけに置換してから以後の処理を行なうといいのではないかと思います。
15
+ などとして、`\n`ひとつだけに置換してから以後の処理を行なうといいのではないかと思います。
16
+
17
+ 追記:
18
+ 後から「実はHTMLメールでした」と言われてもな。
19
+
20
+ Yahoo!メールも「テキストに切り替え」を行なってテキストメールで送れば、回答のスクリプトで処理できますよ。
21
+
22
+ 「リッチテキスト」形式でメールを作成すると、HTMLメールとして相手に送られます。そうすると、getPlainBody()で得られるテキストに改行自体が含まれないことがあります。div要素などを使って(画面上では)自動的に次の行にレンダリングされるようにしている場合です。
23
+ いっぽう、br要素を使って明示的に次の行に移動している場合は、getPlainBody()には\nに変換されて格納されます。

1

表現を修正

2020/09/12 00:40

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -1,4 +1,4 @@
1
- `getPlainBody()`で得られるテキストの改行コードは'\r\n'です。試験的に、
1
+ `getPlainBody()`でメールから得られるテキストの改行コードは'\r\n'です。試験的に、
2
2
 
3
3
  ```
4
4
  message = message.replace(/\r\n/g, "★");
@@ -6,10 +6,10 @@
6
6
 
7
7
  などとしてログに出力してみるとわかります。
8
8
 
9
- 実際のスクリプトでは、
9
+ 実際のスクリプトでは、通常のテキストと同様に扱えるように、
10
10
 
11
11
  ```
12
12
  message = message.replace(/\r\n/g, "\n");
13
13
  ```
14
14
 
15
- などとして、`\n`に置換してから以後の処理を行なうといいのではないかと思います。
15
+ などとして、`\n`ひとつだけに置換してから以後の処理を行なうといいのではないかと思います。