メール関連のRFC

メール関連のRFC

サポートエンジニアの佐藤(@awwa500)です。
メールには長い歴史があるため、関連するインターネット標準(RFC)も数多く存在します。そこで今回は、メール関連で特に重要なRFCをご紹介します。普段、メールの運用をしていてもRFCを読む機会はほとんどないと思いますが、挙動に疑問が生じた場合の拠り所となる情報ですので、主なRFCとその概要を把握しておくとトラブルシューティングなどの役に立つことがあるでしょう。

※今回はメール送信関連の基本的な内容に限定しています。記事では紹介していませんが、他にPOP3やIMAP4などメールボックスに保存されたメールへのアクセス方法を定めたものや、さまざまな認証方式、STARTTLSやS/MIMEなどの暗号化関連のドキュメントがあります。

SMTPとメッセージ形式

メールの世界で一番基本となる標準仕様はRFC 5321とRFC 5322の2つです。

MIME(Multipurpose Internet Mail Extensions)

MIMEはASCII文字のみのシンプルなテキストメールしか扱えないメッセージ形式を拡張するための標準仕様です。MIMEにより、本文を複数の領域に分割して、HTMLや添付ファイルなどさまざまなコンテンツを扱えるようになりました。さらに、base64quoted-printableなど、非ASCII文字(やバイナリデータ)とASCII文字の相互変換方式も定められました。関連するRFCはPart 1~5まで複数のドキュメントに分割されていますが、そのうちメッセージ形式に直接関係するものは次のとおりです。

  • RFC 2045:MIME Part One: Format of Internet Message Bodies
  • RFC 2046:MIME Part Two: Media Types
  • RFC 2047:MIME Part Three: Message Header Extensions for Non-ASCII Text

ISO-2022-JP

ISO-2022-JP(旧称、JUNETコード)は、MIMEにおける非ASCII文字を扱う方法とは別に、7bit文字の範囲で日本語メールを送信することを目的として考えられたもので、「Informational」として公開されています。

  • RFC 1468:Japanese Character Encoding for Internet Messages

送信ドメイン認証

送信ドメイン認証にはいくつかの種類がありますが、最近ではSPF、DKIM、DMARCに集約されつつあります。

  • RFC 7208:SPF
    メールの送信元IPアドレスが、あらかじめ宣言されたホストとなっていることをチェックするための仕組みです。
  • RFC 6376:DKIM
    メールに電子署名を付与して、送信者が公開する公開鍵でその電子署名をチェックすることにより改ざん検知を行うための仕組みです。
  • RFC 7489:DMARC
    SPFとDKIMの検証に失敗したメールの扱いを定めるための仕組みです。

迷惑メール対策

迷惑メールを送信しない、もしくは迷惑メールの被害を受けないためにメールサーバ側でできる対策のベストプラクティスをまとめたものです。メールを大量送信する際は迷惑メール送信者に間違われるような送信挙動を避ける必要がありますが、そんな時はこのベストプラクティスが参考になるでしょう。

  • RFC 2505:Anti-Spam Recommendations for SMTP MTAs

さいごに

いかがだったでしょうか?一見、とっつきにくいRFCですが、シンプルで明快な文章が多いため意外と読みやすかったりもします。全部読むのはとても大変なのでお勧めしませんが、気になる箇所があったらチラッと目を通してみるのもいいかもしれません。