質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

Q&A

解決済

3回答

3555閲覧

文字化け? teratailから送られてくるHTMLメールがテキストとして表示されるのを防ぐ方法はありますか?

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

2グッド

3クリップ

投稿2016/05/28 14:04

編集2016/05/30 23:21

teratailから送信される各種通知メールがHTMLタグそのものがむき出しのテキストとして表示されてしまいます。
原因はおそらくメールヘッダやボディがRFCに厳密に準拠していないか、エンコードが正しくないのだと思われます。
受信環境はWin7のThunderbird(バージョンに関係なく常に)です。

メール本文は
=?ISO-2022-JP?B?GyRCJF4kNyQ/GyhC?=
から始まり、
メールヘッダと本文のHTMLがタグ丸出しでつらつらと表示されます。

全てのメールがこうなるわけではなく、種類(件名)によってこうなるものが
決まっているようです。

私が最近確認した範囲では、
「あなたのクリップした質問に回答があり」
というタイトルのメールは毎回必ずHTMLタグ丸出しになります。

これを防いで普通にHTMLメールとして表示されるにはどうしたらいいでしょうか?

ベストなのはteratailさん側の方でRFC仕様に準拠した正しいメールヘッダとボディを組み立て、
正しいエンコードでメール送信をしてもらうのが一番いいのでしょうけれども、
長年放置されている=修正する気が全く無さそうなので・・・。

kopio, realizerS👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/09/29 22:59

メーラーの設定がテキストで表示になってるだけ。マニュアルくらい読むべき
退会済みユーザー

退会済みユーザー

2016/09/29 23:18 編集

>メーラーの設定がテキストで表示になってるだけ <  違います。 問題のメール以外は普通にHTMLメールとして表示できています。
matobaa

2016/09/30 00:42

背景情報を共有するために、質問にメールをまるっと貼り付けてもらえるとありがたいです。ReceivedやらToやらは必要に応じて伏字にしていただいて。
guest

回答3

0

ベストアンサー

質問者から提供されたサンプル

=?ISO-2022-JP?B?GyRCJF4kNyQ/GyhC?=

をデコードしてみると、ISO-2022-JPのB符号化された「ました」という文字列であることがわかります。メールの件名で長いものを折り返した後のほうの部分と思われます。

ところで私はteratailから、件名が「ました」で終わるメッセージをたくさん受け取っています。しかし、それらの件名がISO-2022-JPのB符号化されていたことはありません (UTF-8のQ符号化です。これ自体は問題ありません)。また、長い件名であっても折り返されていたことがありません (これはMIMEやRFC5322に非準拠なので感心しませんが、本題とは関係ないです)。

とはいっても、私の初ログインはほんの1週間前なので、以前からこうだったという確証はありませんが。

ただひょっとすると、質問者さんが受け取ったものは、teratailが送信したものそのままではなく、質問者さんのメールボックスまで配送される途中のどこかで、なんらかの変換をされているのかもしれません。だとすると、その変換に不備があり、ヘッダの途中に余分な改行が入るなどのデータ破損が起きている可能性があります。

配送途中で経由するメールサーバの管理者に問い合わせてみてはどうでしょうか。


すでに自己解決されたかもしれませんが、せっかく「メール」のタグがついていますので、そっち方面の回答にしてみました。

投稿2016/09/29 08:00

ikedas

総合スコア4441

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/09/29 08:08

ありがとうございます。 私に届いたメールの件名は、Thunderbirdでの表示では 「あなたのクリップした質問に回答があり」 となっており、「ました」が抜けております。 その「ました」は質問文でも書いたとおり、本文のほうにエンコードされた状態で表示されております。 ソース表示すると、以下の通りです。 Subject: =?ISO-2022-JP?B?GyRCJCIkSiQ/JE4lLyVqJUMlVyQ3JD88QUxkJEsyc0V6JCwkIiRqGyhC?= =?ISO-2022-JP?B?GyRCJF4kNyQ/GyhC?= X-PHP-Originating-Script: 500:MailTransport.php From: =?ISO-2022-JP?B?dGVyYXRhaWxbGyRCJUYlaSVGJSQlaxsoQl0=?= <info@teratail.com> X-Mailer: CakePHP Email (以下略) 「あなたの質問に回答がありました」など、他の件名のときは問題ありません。 「あなたのクリップした質問に回答がありました」の件名のときだけおかしくなっています。したがって、おそらくteratail側で「あなたのクリップした質問に回答がありました」のメールを送信する部分のソースコードに問題があると思われます。
ikedas

2016/09/29 08:22

件名などのヘッダが1行におさまらないときは、折り返すことが認められています。ですから長めの件名のときだけ折り返しが発生するのでしょうね。で、その折り返しのしかたに問題がある (たとえば余分な改行が入っているなど) ということです。 で、示されているソースは最近のものでしょうか。そうであれば、上で述べたように配送途中で変換されている可能性が高いです。teratailがわざわざ、ヘッダをISO-2022-JPのB符号化して折り返すサーバと、UTF-8のQ符号化して折り返しをサボるサーバの両方を稼働させるとは思えませんから。
退会済みユーザー

退会済みユーザー

2016/09/29 08:25

これは最近のものではなく、2015年12月のものです。 最近は「あなたのクリップした質問に回答がありました」のメールがそもそも来ていないので、一番新しいものがそれです。
退会済みユーザー

退会済みユーザー

2016/09/29 08:27

メールサーバの符号化云々ではなくて、メールサーバに渡す前、すなわちteratailのスクリプト内でメールを組み立てる際に(誤った)改行コードが混入してしまった可能性もあると思ったのですが、いかがでしょうか?
ikedas

2016/09/29 08:32

現象が再現しないとなんとも言えませんね。なにか回答のありそうな質問にクリップをして待ってみるしかないでしょう。なお、現象が再現したとして、ヘッダがISO-2022-JPのB符号化であれば、回答した通り、teratailに原因がある可能性はまずないということになりますね。
ikedas

2016/09/29 22:52

ところで、teratailからくるほかのメールのヘッダは、折り返し以外の点ではどうなってるんでしょう。(1) ISO-20200-JPのB符号化ですか、UTF-8のQ符号化ですか。(2) (1) のことは、2015年12月以降現在まで変わっていませんか、途中で変わっていますか。
ikedas

2016/10/03 03:50

私のほうでは昨日「質問者が情報の追加・修正の依頼にコメントをしました」および「あなたのクリップした質問に回答がありました」という件名のメッセージを受け取りましたが、UTF-8のQ符号化で折り返しなしでした。ご質問にあるようなメッセージが正しく表示されない問題は起きていません (Fromヘッダフィールドのphrase中の「[」「]」がQ符号化されていないのは感心しませんが、本題には関係ないです)。
退会済みユーザー

退会済みユーザー

2016/10/03 04:23

最近「あなたのクリップした質問に回答がありました」のメールを受信したところ、件名が途中で改行されている不具合が直っていました。 2015年12月から現在までのどこかの時点で修正されたようですね。 ヘッダを見ると「X-PHP-Originating-Script: 500:MailTransport.php」の記述がなくなっているので、その辺りのスクリプトに問題があったんじゃないかなと推測しています。
ikedas

2016/10/03 04:48

そちらでもUTF-8のQ符号化になっていますか。なっているという前提でコメントします。 いまは「X-Mailer: CakePHP Email」となっていますね。以前も現在もメールの送出にはCakeEmailを使っているようですが、ヘッダの違いはバージョンの違いによるものでしょうか。 少なくとも現在のCakeEmailでは、基本的にUTF-8のQ符号化になってしまうようです。一方、ヘルプ https://teratail.com/help の「受信したメールが読めない」に「文字コードを指定する場合はISO-2022JPをご指定ください」とあるので、以前はteratailの側でISO-2022-JPのB符号化になるように対策していた可能性もありますね。 ともかく、現象が再現しなくなったということで、この件は解決でしょうか。
退会済みユーザー

退会済みユーザー

2016/10/03 06:04

問題が発生していた頃のメールでは From: =?ISO-2022-JP?B?dGVyYXRhaWxbGyRCJUYlaSVGJSQlaxsoQl0=?= <info@teratail.com> 現在の修正されたメールでは From: =?utf-8?Q?xxx@xxx.xxx.jp, [=E3=83=86=E3=83=A9=E3=83=86=E3=82=A4=E3=83=AB]@xxx.xxx.jp ?= <info@teratail.com> となっていますので、 以前はISO-2022-JPのB符号化だったけど今はUTF-8のQ符号化のようです。 修正後のメールのFROM欄になぜ自分のサーバ名(xxx.xxx.jp)が入っているのか謎ですが・・・
ikedas

2016/10/03 08:10

別の問題が起きていますね。 当方ではこうなっています。 > From: =?utf-8?Q?teratail[=E3=83=86=E3=83=A9=E3=83=86=E3=82=A4=E3=83=AB]?= <info@teratail.com> > Subject: =?utf-8?Q?=E3=81=82=E3=81=AA=E3=81=9F=E3=81=AE=E3=82=AF=E3=83=AA=E3=83=83=E3=83=97=E3=81=97=E3=81=9F=E8=B3=AA=E5=95=8F=E3=81=AB=E5=9B=9E=E7=AD=94=E3=81=8C=E3=81=82=E3=82=8A=E3=81=BE=E3=81=97=E3=81=9F?= デコードすると、 > From: teratail[テラテイル] <info@teratail.com> > Subject: あなたのクリップした質問に回答がありました zico_teratailさんの環境でFromヘッダフィールドの内容が改変されているのは、上で私が「感心しない」と述べた、正しくないQ符号化が原因だと考えられます (正しい符号化についてはRFC2047の5章を参照)。最終配送先直近のメールサーバがFromフィールドを正常に解析できず、適当な「トークン」をaddr-specとみなして自身のメールドメインを補完してしまっています。 つまり、これはteratailの不具合ですね。
ikedas

2016/10/04 03:59

一応、問題にした点は直していただけたようです。 > From: =?utf-8?Q?teratail=20=5B=E3=83=86=E3=83=A9=E3=83=86=E3=82=A4=E3=83=AB=5D?= <info@teratail.com> > Reply-To: =?utf-8?Q?teratail=20=5B=E3=83=86=E3=83=A9=E3=83=86=E3=82=A4=E3=83=AB=5D?= <info@teratail.com> > To: =?utf-8?Q?ikedas?= <XXXX@XXXX.XXXX> (やっぱり折り返ししてないですし、ASCIIのみでも「符号化」しているし、どっちも感心しないのですが、本題とは関係ないかと)。 ともかく、これで本当に解決、でしょうかね。
ikedas

2016/10/06 05:03

たびたびすみません。まだ直していただいてはいないようです (上のは別のシステムからのメールだったようです)。しばらく待ってみることにします。
guest

0

ご意見用の窓口も公開されているのに質問にしている意味がよくわからないのですが。
RFCに準拠していない箇所の特定までされているのであれば、右下から投稿するだけだと思います。
改善してもらいましょう。

投稿2016/06/05 05:48

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

gmailでは正しく表示されています。

Thunderbirdとgmailで、処理の仕方が違うのではないでしょうか。
色々とメーラーの設定を変えても不具合が発生する場合は、
Thunderbird固有の問題でしょう。

投稿2016/06/05 05:18

編集2016/06/05 05:23
mao999

総合スコア111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/06/05 05:21

もちろんそうでしょうが、そういう問題ではありません。 推測ですが、おそらくメールの作り方がRFCに完全準拠していないのが原因だと思われます。Gmailは柔軟に対応しているだけでしょう。 しかしそれなりにユーザ数の多いThunderbirdで正しく表示できないのはやはり問題だと思います。
mao999

2016/06/05 05:29

申し訳ありませんが、私はRFCの規格は知りません。 RFCに完全準拠していないが為に起こると言える確たる根拠を示して、 それがユーザにとってかなり不快だという旨を運営に送れば、怠慢でない限りは対応してくれそうですけど。 これも推測ですが、 ”確たる根拠”ではなく、”推測”の域を出ていない様なので、運営・開発側も対応しない方針ではないでしょうか。
退会済みユーザー

退会済みユーザー

2016/09/29 23:05

GMAILはヘッダーそっちのけですべてHTMLメールとして扱っているだけです。 タグが表示されるメールは正しくエスケープされているだけです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.39%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問