初めまして。
山の狸と申します。
<利用環境>
Windows 11 24H2 (10.0.26100.2605)
Thunderbird 128.6.0esr (64 bit)
<課題>
Thunderbird で HTML メールに HTML 文字装飾タグがあるメールをプレーンテキスト表示した時、テキスト装飾記号を表示しない方法を探しております。
<状況>
メッセージの表示形式をプレーンテキストで表示する設定にしていますが、HTML を表示した際に HTML の本文にはない記号 (「_」(アンダースコア)、「*」(アスタリスク)、「/」(スラッシュ)) を表示して文字に下線、太字・斜字の装飾をする場合があります。
ずっと以前からこの現象は発生しています。
プレーンテキスト表示を指定しているハズなのに、変な表示をして気味悪く思っています。
<調査>
気になるので、このことについて調べ始めたところ次の記事を見つけました。
本文に特定の記号を付けると Thunderbird で文字装飾して表示するんですね。
こんな動作をしているなんて初めて知りました。
https://www.pi-kun.com/archives/2729/
> 「_」(アンダースコア)で囲まれた部分に、アンダーラインが引かれる
> 「*」(アスタリスク)で囲まれた部分が、ボールドで表示される
> 「/」(スラッシュ)で囲まれた部分が、イタリックで表示される
> メール本文で装飾されるテキストは以下の設定で直せました。
> 「設定エディター」にて、mail.display_struct を false に変更する
「設定エディター」を変更し、プレーンテキスト形式メールを作成して表示したところ、文字装飾はなくなりました。
しかし、表示からテキスト装飾記号「_」(アンダースコア)、「*」(アスタリスク)、「/」(スラッシュ) は消えません。
私が調べた中では、Thunderbird のテキスト装飾記号は上記の 3 つでした。もしかしたら、この他にもあるのかもしれません。
では、HTML 形式メールではどうなるかということで、下記のようにメールを作成しプレーンテキスト表示してみました。
次のように HTML 文字装飾タグをつけた HTML 形式メールを作成します。
<u>アンダースコア</u>
<b>ボールド</b>
<strong>ストロング</strong>
<i>イタリック</i>
プレーンテキスト形式で表示すると次のようになりました。
_アンダースコア_
*ボールド*
*ストロング*
/イタリック/
HTML 文字装飾タグがテキスト装飾記号へ置き換わりました。
mail.display_struct が
true であればテキスト装飾記号を含めて文字装飾表示します。
false であれば文字装飾をしません。
なお、mail.display_struct は true がデフォルトのようです。
これらのことから、次のことがわかります。
Thunderbird は、メールソースからプレーンテキストへ表示する際、HTML 文字装飾タグをテキスト装飾記号へ置き換えて表示する。
プレーンテキストの文字装飾するかは mail.display_struct の設定による。
<希望>
mail.display_struct を false と設定することで文字装飾はなくなりましたが、HTML メールのソースの文字装飾タグから作られたテキスト装飾記号は表示します。
このテキスト装飾記号と同じ記号が本文に存在すると混乱の原因になるので不要です。
必要があれば表示を HTML 形式へ切り替えて読めばいいわけです。
「Allow HTML Temp」というアドオン利用により、開いているメールをワンクリックで HTML 形式へ切り替えてくれます。
なお、プレーンテキストメールにテキスト装飾記号があった場合は、プレーンテキストをそのまま表示するという原則により、テキスト装飾記号を削除すべきではありません。
このような理由から、Thunderbird で HTML メールに HTML 装飾タグがあるメールをプレーンテキスト表示した時、テキスト装飾記号を表示しない方法はないかと探しております。
ネットで調べても方法を見つけることができませんでした。
もし、方法をご存じな方がいらっしゃいましたら、その方法を教えていただけるとありがたいです。
お手数ですがよろしくお願いします。
HTML 文字装飾タグがあるメールをプレーンテキスト表示した時、テキスト装飾記号を表示しない方法
- EarlgreyTea
- 記事: 4645
- 登録日時: 2014年2月22日(土) 00:59:51
- お住まい: 北海道
Re: HTML 文字装飾タグがあるメールをプレーンテキスト表示した時、テキスト装飾記号を表示しない方法
山の狸 さん、EarlgreyTea と申します。
Ben Bucksch - Projects - Mozilla - TXT->HTML Conversion
プレーンテキストタグは4種類らしく、表示の際にHTML変換されることで下記のCSSが設定されます。(インスペクターで確認しました)
その場合は、「converter.html2txt.structs を false に変更」で実現できます。
構造化フレーズというらしいです。TXT->HTML変換のドキュメント?を見つけました。山の狸 さんが書きました:本文に特定の記号を付けると Thunderbird で文字装飾して表示するんですね。
こんな動作をしているなんて初めて知りました。
https://www.pi-kun.com/archives/2729/
> 「_」(アンダースコア)で囲まれた部分に、アンダーラインが引かれる
> 「*」(アスタリスク)で囲まれた部分が、ボールドで表示される
> 「/」(スラッシュ)で囲まれた部分が、イタリックで表示される
> メール本文で装飾されるテキストは以下の設定で直せました。
> 「設定エディター」にて、mail.display_struct を false に変更する
「設定エディター」を変更し、プレーンテキスト形式メールを作成して表示したところ、文字装飾はなくなりました。
Ben Bucksch - Projects - Mozilla - TXT->HTML Conversion
プレーンテキストタグは4種類らしく、表示の際にHTML変換されることで下記のCSSが設定されます。(インスペクターで確認しました)
- *強い* → font-weight: bolder; (太字)
- /強調/ → font-style: italic; (イタリック)
- _下線_ → text-decoration: underline; (下線)
- |コード| → font-family: -moz-fixed; (等幅)
逆にHTMLからプレーンテキストに変換する際に「*」などを挿入しないようにすることも可能です。山の狸 さんが書きました:このような理由から、Thunderbird で HTML メールに HTML 装飾タグがあるメールをプレーンテキスト表示した時、テキスト装飾記号を表示しない方法はないかと探しております。
その場合は、「converter.html2txt.structs を false に変更」で実現できます。
Re: HTML 文字装飾タグがあるメールをプレーンテキスト表示した時、テキスト装飾記号を表示しない方法
EarlgreyTea さん
こんばんは。
> プレーンテキストタグは4種類らしく、表示の際にHTML変換されることで下記のCSSが設定されます。(インスペクターで確認しました)
私が、「テキスト装飾記号」と言っていたのは、「プレーンテキストタグ」というのですか。
4 種類あるんですね。
|コード| と書けば「等幅」になるとありますが、等幅フォントで表示していれば意味がない・・・かな。
converter.html2txt.structs を false へ変更したところ、HTML メールのプレーンテキスト表示でプレーンテキストタグが入ることはなくなり、表示がすっきりしました。
併せて、mail.display_struct を false へ変更したので、もし、プレーンテキストタグが入っているプレーンテキストメールや、本文にプレーンテキストタグ (HTML の装飾タグではありません) が入っている HTML メールであっても文字装飾はしません。
これぞ、私が求めていたものです。
この設定をしてしばらく様子を見ることにします。
ところで、私はコレ (↓) を見つけましたが、まだ HTML メールが普及していなかった Netscape 時代に、メール送信やニュースグループへ投稿する際にプレーンテキストで文字装飾できる方法だったんですね。
当時、Netscape を使用しておりましたがこのことは知りませんでした。
https://edmullen.net/mozilla/moz_stext.php
いろいろと教えていただき、どうもありがとうございました。
こんばんは。
> プレーンテキストタグは4種類らしく、表示の際にHTML変換されることで下記のCSSが設定されます。(インスペクターで確認しました)
私が、「テキスト装飾記号」と言っていたのは、「プレーンテキストタグ」というのですか。
4 種類あるんですね。
|コード| と書けば「等幅」になるとありますが、等幅フォントで表示していれば意味がない・・・かな。
converter.html2txt.structs を false へ変更したところ、HTML メールのプレーンテキスト表示でプレーンテキストタグが入ることはなくなり、表示がすっきりしました。
併せて、mail.display_struct を false へ変更したので、もし、プレーンテキストタグが入っているプレーンテキストメールや、本文にプレーンテキストタグ (HTML の装飾タグではありません) が入っている HTML メールであっても文字装飾はしません。
これぞ、私が求めていたものです。
この設定をしてしばらく様子を見ることにします。
ところで、私はコレ (↓) を見つけましたが、まだ HTML メールが普及していなかった Netscape 時代に、メール送信やニュースグループへ投稿する際にプレーンテキストで文字装飾できる方法だったんですね。
当時、Netscape を使用しておりましたがこのことは知りませんでした。
https://edmullen.net/mozilla/moz_stext.php
いろいろと教えていただき、どうもありがとうございました。
Re: HTML 文字装飾タグがあるメールをプレーンテキスト表示した時、テキスト装飾記号を表示しない方法
山の狸です。
自己レスです。
converter.html2txt.structs の動作を調べている中で、このような記事がありました。
https://null.michikusa.jp/config/config_c.html
> converter.html2txt.structs
> テキストのみとしてウェブページを保存するとき、「構造化された」要素(<strong>、<em>、<code>、<sub>、<sup>、<b>、<i>、<u>)を他の文字とともにフォーマットするか。
HTML メールをプレーンテキストで表示する際に、HTML のタグをプレーンテキストタグへどのように変換するのかと同じ意味ではないかと思いました。
これまで出てこなかった、下付き文字タグ (<sub>) と 上付き文字タグ (<sup>) があります。
これらがどのように動作するか、早速、試してみました。
あらかじめ Thunderbird を次のように設定しておきます。
設定エディター
converter.html2txt.structs は true にする。
mail.display_struct は false にする。
設定
プレーンテキストメッセージ
顔文字をアイコンで表示する のチェックを外す。
※ この設定をしておかないと、10^3 と記述した時、3 を上付き文字で表示する。
この動作は今回の確認にあたり不都合なため。
メール作成
次のように HTML タグを入れて HTML メールを作成します。
<strong>強い</strong>
<em>強調</em>
<code>等幅</code>
CO<sub>2</sub>
10<sup>3</sup>
<b>太字</b>
<i>斜字</i>
<u>下線</u>
これをプレーンテキストで表示すると次のようになりました。
*強い*
/強調/
|等幅|
CO_2
10^3
*太字*
/斜字/
_下線_
8 種類 の HTML タグを 6 種類のプレーンテキストタグへ変換しています。
converter.html2txt.structs を false にすると次のように表示しました。
強い
強調
等幅
太字
CO2
103
斜字
下線
タグのところを詰めて表示するので、プレーンテキストタグは表示しません。
これは私が求めていたことです。
しかし、下付き文字タグのところと (CO2) 上付き文字タグのところ (103) がおかしいです。
CO2 はどうにか二酸化炭素とわかりますが、103 はどう見ても 10 の 3 乗には見えません。
ここは、CO_2 と 10^3 の表示でもよいのかなと思います。
converter.html2txt.structs を true に設定するのは少々危ないようです。
もう少し動作確認を続けます。
自己レスです。
converter.html2txt.structs の動作を調べている中で、このような記事がありました。
https://null.michikusa.jp/config/config_c.html
> converter.html2txt.structs
> テキストのみとしてウェブページを保存するとき、「構造化された」要素(<strong>、<em>、<code>、<sub>、<sup>、<b>、<i>、<u>)を他の文字とともにフォーマットするか。
HTML メールをプレーンテキストで表示する際に、HTML のタグをプレーンテキストタグへどのように変換するのかと同じ意味ではないかと思いました。
これまで出てこなかった、下付き文字タグ (<sub>) と 上付き文字タグ (<sup>) があります。
これらがどのように動作するか、早速、試してみました。
あらかじめ Thunderbird を次のように設定しておきます。
設定エディター
converter.html2txt.structs は true にする。
mail.display_struct は false にする。
設定
プレーンテキストメッセージ
顔文字をアイコンで表示する のチェックを外す。
※ この設定をしておかないと、10^3 と記述した時、3 を上付き文字で表示する。
この動作は今回の確認にあたり不都合なため。
メール作成
次のように HTML タグを入れて HTML メールを作成します。
<strong>強い</strong>
<em>強調</em>
<code>等幅</code>
CO<sub>2</sub>
10<sup>3</sup>
<b>太字</b>
<i>斜字</i>
<u>下線</u>
これをプレーンテキストで表示すると次のようになりました。
*強い*
/強調/
|等幅|
CO_2
10^3
*太字*
/斜字/
_下線_
8 種類 の HTML タグを 6 種類のプレーンテキストタグへ変換しています。
converter.html2txt.structs を false にすると次のように表示しました。
強い
強調
等幅
太字
CO2
103
斜字
下線
タグのところを詰めて表示するので、プレーンテキストタグは表示しません。
これは私が求めていたことです。
しかし、下付き文字タグのところと (CO2) 上付き文字タグのところ (103) がおかしいです。
CO2 はどうにか二酸化炭素とわかりますが、103 はどう見ても 10 の 3 乗には見えません。
ここは、CO_2 と 10^3 の表示でもよいのかなと思います。
converter.html2txt.structs を true に設定するのは少々危ないようです。
もう少し動作確認を続けます。
- EarlgreyTea
- 記事: 4645
- 登録日時: 2014年2月22日(土) 00:59:51
- お住まい: 北海道
Re: HTML 文字装飾タグがあるメールをプレーンテキスト表示した時、テキスト装飾記号を表示しない方法
WEBブラウザーに表示されたものをメモ帳にコピペしたり、HTML→テキスト変換ツールの類を使った場合、<sub>や<sup>は単純に除去されて「CO2」「103」となります。山の狸 さんが書きました:しかし、下付き文字タグのところと (CO2) 上付き文字タグのところ (103) がおかしいです。
CO2 はどうにか二酸化炭素とわかりますが、103 はどう見ても 10 の 3 乗には見えません。
ここは、CO_2 と 10^3 の表示でもよいのかなと思います。
メールソフト「Becky!」のテキスト表示も同じです。
また、読み上げソフトを使用した場合の結果も同じになるかと思います。
それで意味が伝わらないのは、元のHTMLを書いた側のアクセシビリティへの配慮の問題かと思います。
アクセシビリティに配慮するなら画像として挿入し、それに代替テキスト属性として正しい読みを指定することになるでしょう。
もしくは直後に括弧書きで(10の3乗)と書くとか方法はあります。
そして電子メールでは上付き/下付き文字は使わずに別の表記にした方がいいかもしれません。
ちなみに、Gmail(Web)のメール作成画面では上付き/下付きの書式を指定する方法は用意されていないようです。
converter.html2txt.structs が true な場合の挙動は結局はMozillaの独自仕様なわけなんで、混乱を避ける意味で廃止した方がいいのではと個人的には思います。山の狸 さんが書きました:converter.html2txt.structs を true に設定するのは少々危ないようです。
どうせやるならMarkdown記法へ変換とかですかね。
Re: HTML 文字装飾タグがあるメールをプレーンテキスト表示した時、テキスト装飾記号を表示しない方法
山の狸です。
時間が経過しましたが、私なりにまとめておきます。
私の次の課題について、
false にすると HTML メールで 10の3乗を 10<sup>3</sup> と記述すると、プレーンテキスト表示ではタグが消えて 103 となり意味不明になってしまいます。
true では 10³(顔文字をアイコンで表示する のチェック「あり」の場合)、もしくは 10^3(顔文字をアイコンで表示する のチェック「なし」の場合)と表示し、どちらも意味が通ります。
これから先 10<sup>3</sup> と書いてくる HTML メールを受信する機会はほとんどないと思いますが、まったくないとは言い切れないところが悩ましいところです。
true でも false でも不都合があるので悩みましたが、当初の課題解決はできないけれども、万が一にも 10<sup>3</sup> の記述があるメールが届いた場合を考慮し、HTML から変換したプレーンテキストタグは表示することにします。
なお、もし、プレーンテキストタグが入ったプレーンテキストメールが送られてきた時もメール本文をそのまま表示したいと思っておりますので、このタグも表示します。
当面は下記の動作するように Thunderbird を設定して様子を見ることにします。
最後になりましたが、EarlgreyTea さんにはいろいろな情報を教えていただき感謝します。
ありがとうございました。
では。
# この記事は初めて BBCode を使用して書きました。
# 最初は BBCode を適当に書いていましたが、「 BBcode MozillaZine.jp フォーラム • BBCode ガイド」を見つけたのでそれを参考にしました。
# BBCode も Thuderbird のプレーンテキストタグも HTML を使用せずに(または、使用できない環境にあって)文字装飾する仕掛けは通じるものがあります。
# Thunderbird のプレーンテキストタグは、メールや HTML の仕様、通信環境等が発展途上の時代に、メーリングリストやニュースグループへの HTML 投稿禁止ルールの中で生み出された遺産なんでしょうね。
時間が経過しましたが、私なりにまとめておきます。
私の次の課題について、
EarlgreyTea さんに教えていただいた次の方法で、テキスト装飾記号(プレーンテキストタグ)を消すことができました。山の狸 さんが書きました: <課題>
Thunderbird で HTML メールに HTML 文字装飾タグがあるメールをプレーンテキスト表示した時、テキスト装飾記号を表示しない方法を探しております。
しかし、以前の記事にも書きましたが、試したところタグが消えて最初は喜んでおりましたが、消すことによる不都合がありました。EarlgreyTea さんが書きました: 逆にHTMLからプレーンテキストに変換する際に「*」などを挿入しないようにすることも可能です。
その場合は、「converter.html2txt.structs を false に変更」で実現できます。
false にすると HTML メールで 10の3乗を 10<sup>3</sup> と記述すると、プレーンテキスト表示ではタグが消えて 103 となり意味不明になってしまいます。
true では 10³(顔文字をアイコンで表示する のチェック「あり」の場合)、もしくは 10^3(顔文字をアイコンで表示する のチェック「なし」の場合)と表示し、どちらも意味が通ります。
これから先 10<sup>3</sup> と書いてくる HTML メールを受信する機会はほとんどないと思いますが、まったくないとは言い切れないところが悩ましいところです。
true でも false でも不都合があるので悩みましたが、当初の課題解決はできないけれども、万が一にも 10<sup>3</sup> の記述があるメールが届いた場合を考慮し、HTML から変換したプレーンテキストタグは表示することにします。
なお、もし、プレーンテキストタグが入ったプレーンテキストメールが送られてきた時もメール本文をそのまま表示したいと思っておりますので、このタグも表示します。
当面は下記の動作するように Thunderbird を設定して様子を見ることにします。
- メール表示はプレーンテキスト表示とし、必要な場合のみ HTML 表示とする。
- Thunderbird は対策をしているかとは思いますが HTML 表示は完全に安全ではないと考えます。
メール本文にリンク先の URL が記載されている場合、HTML 表示ではマウスを重ねないと実際のリンク先はわかりませんが、プレーンテキスト表示では本文に表示しているのでマウスを重ねる必要はありません。
このような理由から、通常はプレーンテキスト表示にしておいて、出どころがわかっているメールで必要な場合のみ一時的に HTML 表示することにします。
- これも、プレーンテキストはプレーンテキストとして表示したいことが理由です。
現在は emoji(例えば ☺) や上付き文字(例えば 10³)等が UTF-8 に含まれていますので、昔からの「絵文字」の使用機会は減っているのではと思っています。
- 実際、タグ内の文字列に数字や記号が入っていると文字装飾に失敗することがあるようで読みづらくなります。
「*」で囲んであっても太字にならなかったり、「*」の囲みが終わっても太字が続いたりします。多分、バグなんでしょうね。
変な文字装飾をしてほしくないので文字装飾を止めます。
- この理由は、この記事の最初に書いたとおりです。
- Thunderbird は対策をしているかとは思いますが HTML 表示は完全に安全ではないと考えます。
- 表示 → メッセージの表示形式
- プレーンテキスト に設定する。
- 顔文字をアイコンで表示する のチェックを「なし」とする。
- mail.display_struct = false とする。
- true :プレーンテキストタグによる文字装飾する。
false :プレーンテキストタグによる文字装飾しない。
- true :HTML タグから変換したプレーンテキストタグを表示する。
false :HTML タグから変換したプレーンテキストタグを表示しない。
- true :プレーンテキストタグによる文字装飾する。
- この拡張機能により、プレーンテキスト表示している HTML メールをワンクリックで HTML 表示に切り替えることが可能になる。
最後になりましたが、EarlgreyTea さんにはいろいろな情報を教えていただき感謝します。
ありがとうございました。
では。
# この記事は初めて BBCode を使用して書きました。
# 最初は BBCode を適当に書いていましたが、「 BBcode MozillaZine.jp フォーラム • BBCode ガイド」を見つけたのでそれを参考にしました。
# BBCode も Thuderbird のプレーンテキストタグも HTML を使用せずに(または、使用できない環境にあって)文字装飾する仕掛けは通じるものがあります。
# Thunderbird のプレーンテキストタグは、メールや HTML の仕様、通信環境等が発展途上の時代に、メーリングリストやニュースグループへの HTML 投稿禁止ルールの中で生み出された遺産なんでしょうね。