rfc2047とは? rfc2047を理解してメールの件名・送信者名をきちんと表示させよう共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
rfc2047とは? rfc2047を理解してメールの件名・送信者名をきちんと表示させよう共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


rfc2047とは

rfc2047はメールのヘッダ部分で使われる非ASCII文字を安全に表現するための規格です。正式名称は RFC 2047 で、MIME の一部として広く使われています。メールは英数字中心の時代にスタートしましたが、日本語や中国語などの文字を含む件名や送信者名を正しく表示するためにこの規格が活躍します。

この仕組みのおかげで、受信側のメールクライアントは「日本語の件名」「長い名前」「多言語の表示」などを正しくデコードして表示することができます。もし rfc2047 が使われていなかったり誤って使われていると、文字化けが発生して読めない文字列になってしまいます。だから私たちがメールを正しく読むためにはこのルールを知っておくと役立ちます。

encoded-word の仕組み

rfc2047 が定めるのはencoded-wordと呼ばれる形式です。encoded-word は以下の形で書かれます。

=? charset ? encoding ? encoded-text ?= ここで charset は文字コード、encoding は文字列の表現方法、encoded-text は実際のデータを指します。よく使われる encoding は Base64(B)とクイック表現の Q です。

具体例

例として、=?UTF-8?B?5pel5pys6Kqe?= という encoded-word は日本語の文字列を Base64 で表したものです。実際にはこの encoded-word をメールクライアントが解読して、日本語の文字列として表示します。

使われる場面と利点

主に件名(Subject)や送信者名(From)など、ヘッダ部分で非ASCII文字を表示する場面に使われます。複数の encoded-word を連結して一つの文字列として扱われることもあり、長い名前や複数語の名前でも安全に伝えることができます。

注意点と実践のコツ

メールクライアントは通常自動でデコードしますので、特別な操作をしなくても表示されることが多いです。

・もし文字化けを見つけたら、受信設定の文字コードを UTF-8 に統一する、または自動デコード機能を有効にするなどの方法で対処します。

・複数の encoded-word が続く場合、空白や改行で区切られていても連結して表示されることが一般的です。これにより長い名前でも切れずに表示されます。

encoded-word の構成要素を表で見る

項目説明
charset文字コードの指定。例: UTF-8
encodingエンコード方式。例: B は Base64、Q はクイック表現
encoded-text実際のデータ。Base64 などでエンコードされた文字列

初心者向けのまとめ

rfc2047 は、国際化されたメールを正しく扱うための基本的な規格です。件名や送信者名が英数字だけでなく日本語や他の言語でも美しく表示されるよう、encoded-word という仕組みで文字を置換して伝えます。日常のメールで文字化けに遭遇したときは、 encoded-word が使われているかを疑い、UTF-8 と Base64 の組み合わせを想定してデコードしてみると解決につながることがあります。

よくある質問

Q: すべてのメールで rfc2047 が使われていますか?
A: いいえ。英数字だけの件名や短い名前は ASCII のままの場合もあります。

Q: どんな言語でも大丈夫ですか?
A: 基本的には UTF-8 などの広く使われる文字コードを使うと対応範囲が広がります。


rfc2047の同意語

RFC 2047
MIME ヘッダのエンコード方式を定義した RFC の正式名称。メールヘッダで非 ASCII 文字を表現するための規格です。
RFC2047
RFC 2047 の別表記。RFC 番号の表記揺れの一つで、同じ規格を指します。
Encoded-word
RFC2047 で規定される、=?charset?encoding?encoded-text?= という形式のエンコード語。メールヘッダ内の単語レベルで文字を表現する仕組みです。
MIME encoded-word
MIME 規格に基づく encoded-word の呼び方。RFC2047 により定義された形式を指します。
MIME word
MIME encoded-word の別称として使われる表現。日常的にはこの語で呼ばれることがあります。
Encoded Word
Encoded-word の別表記(英語表記バリエーションとして使われることがあります)。
メールヘッダ用エンコード語
メールのヘッダ部分で使用されるエンコード語の総称。RFC2047 の代表的な利用対象です。
RFC2047 encoded-word
RFC2047 に準拠したエンコード語の表現を指す言い回し

rfc2047の対義語・反対語

プレーンテキスト
ヘッダ内の非ASCII文字を使わず、エンコードせずそのまま表示する運用。RFC2047の encoded-word を使わない対義語のイメージ。
ASCIIのみ
ヘッダ・本文で使用する文字を ASCII の範囲に限定する運用。非 ASCII を避ける意で RFC2047 の対極。
未エンコード
encoded-word を使用せず、文字をそのまま記述する状態。
直接表記
非 ASCII も含む文字をエンコードせず、直接表記する方法。
Unicode直接記述
UTF-8 などの Unicode 文字をヘッダに直接書く表現。
エンコード不要
RFC2047 のエンコード処理を行わない前提の運用。
エンコード回避
encoded-word の使用を避ける考え方・実践。
直書き表現
ヘッダの文言を直接的に書く表現形式
ASCII最適化表現
全てを ASCII に落として表現することで国際化を回避する形。
ヘッダ値の直書き
ヘッダ値を直書きする運用。非ASCIIをエンコードせず表現するイメージ。

rfc2047の共起語

MIME
Multipurpose Internet Mail Extensions。電子メールの拡張規格で、メールの本文とヘッダの表現方法を定めています。RFC2047はこのMIME規格のEncoded-Word機能を使い、ヘッダ内の非ASCII文字を表現します。
Encoded-Word
ヘッダ内で非ASCII文字を表現するための形式。=?charset?encoding?encoded-text?= の形で書かれ、非ASCII文字をASCIIだけのヘッダに含められるようにします。
文字セット
文字を表す集合(例: UTF-8、ISO-2022-JP など)。Encoded-Wordではこの charset が先頭に指定され、どの文字をどうエンコードするかを決めます。
Base64
Base64は64文字を使うエンコード方式のひとつ。RFC2047のEncoded-Wordでエンコードに用いられる「B」エンコードに対応します。
Qエンコード
Qエンコードはスペースをアンダースコアで表すなど、非ASCII文字をASCIIに近い形で表現するエンコード方式。RFC2047のEncoded-Wordで使われることがあります。
件名ヘッダ
件名を表すヘッダ(Subject)。非ASCII文字はEncoded-Wordとして表現されることが多いです。
Fromヘッダ
差出人情報を含むヘッダ(From)。非ASCII文字が含まれる場合にEncoded-Wordが使われることがあります。
Toヘッダ
宛先情報を含むヘッダ(To)。非ASCII文字がある場合、Encoded-Wordで表現されます。
Ccヘッダ
カーボンコピーの宛先を表すヘッダ(Cc)。非ASCII文字を含む場合はEncoded-Wordで表現されます。
メールヘッダ
メールのヘッダ全体の領域。Subject や From などの各ヘッダでEncoded-Wordが使われます。
非ASCII文字
ASCII以外の文字。RFC2047はこの非ASCII文字をヘッダ内で安全に扱えるようにします。
UTF-8
Unicodeの可変長文字セットの一つ。現在もっとも広く使われる文字セットで、Encoded-Wordのcharsetとして使われることが多いです。
ISO-2022-JP
日本語を表現する古典的な文字コード。日本語メールのヘッダでEncoded-Wordと組み合わせて使われることがあります。
メールクライアント
GmailやOutlookなどのメールを読む・送るアプリケーション。RFC2047に対応していれば非ASCII件名の表示が正しく行われます。

rfc2047の関連用語

RFC 2047
メールヘッダ内で非ASCII文字を安全に表現するための規格。Subject や From などのヘッダで =?charset?encoding?encoded-text?= という形の encoded-word を使います。
encoded-word
非ASCII文字をヘッダで伝えるための表現形式。形式は =?charset?encoding?encoded-text?= の形で、B(Base64)または Q(Quoted-Printable風) のエンコーディングを用います。
charset
encoded-word 内で指定される文字集合。UTF-8 や ISO-2022 など、対象文字のエンコードを表します。
encoding
encoded-word 内で使われるエンコーディングの種類。B は Base64、Q はヘッダ向けのクオートプリント風表現です。
Base64 (B)
Base64。データを ASCII 文字だけで表現するエンコーディング。encoded-word の代表的なエンコーディングです。
Q-encoding (Q)
Qエンコーディング。スペースをアンダースコア '_' などで表現するなど、ヘッダ向けに最適化されたエンコーディングです。
Subject
メールの件名を表すヘッダ。非ASCIIを含む場合 RFC 2047 でエンコードされることがあります。
From
差出人情報を含むヘッダ。表示名に非ASCIIが含まれる場合 encoded-word で表現されます。
To
宛先情報を含むヘッダ。複数の表示名がある場合も encoded-word を使うことがあります。
MIME
メール本文とヘッダの多目的伝送を扱う総合規格。RFC 2045/2046/2047 などを含みます。
RFC 2045
MIME Part 1。メディアタイプや境界、添付などの定義。
RFC 2046
MIME Part 2。データのタイプ(Content-Type)とパラメータ、エンコーディングの定義。
Non-ASCII in headers
ヘッダに非ASCII文字を含める必要がある場合、RFC 2047 が解決策を提供します。
Header folding
長いヘッダを改行して折り返す規則。複数の encoded-word を連結して使うのが一般的です。
Length limit (75 octets)
encoded-word 一語の長さは最大 75 オクテット。超える場合は複数の encoded-word に分割して記述します。
7bit / 8bit
7bit は ASCII のみ、8bit は拡張文字を含む。ヘッダの非ASCIIを扱う際には encoded-word の使用が前提となることが多いです。
UTF-8
Unicode を表す最も一般的なエンコーディング。encoded-word の charset としてよく使われます。
ISO-2022
日本語などに使われる古い文字セット。encoded-word の charset として使われることがありますが、現在は UTF-8 が主流です。
ASCII
英数字と基本記号のみを含む 7-bit の文字集合。RFC 2047 の前提として ASCII の安全な転送が重要です。

rfc2047のおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14450viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2417viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1070viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1040viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
931viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
903viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
837viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
833viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
797viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
786viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
717viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
702viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
594viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
574viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
572viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
549viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
517viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
497viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
477viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
475viws

新着記事

インターネット・コンピュータの関連記事