はじめに
普段のお仕事や私生活においても、電子メールを使用する方は多いと思いますが、一般的にはメールサーバーやメールクライアントによって、送信や受信ができるメールのサイズには上限が設けられており、添付ファイルを付与してメールを送信する際、「メールの容量や添付ファイルの容量の制限によって送信できない」といった経験をされた方もいるかと思います。
場合によっては、設定されている上限よりも小さいサイズのファイルを添付しているのに、メールサイズの上限の制限によって送信できないといったこともあります。
電子メールの仕組みについて
前述のようなケースの説明をするにあたり、まずは電子メールの仕組みについて記載しますと、一般的な電子メールの仕組みでは添付ファイルや、画像、動画等のバイナリデータや、マルチバイト文字などの非ASCII文字をそのままの形で送受信することができませんので、電子メールで送信できるように、内部的にテキスト形式のデータにエンコードしてから送信しております。
このようにASCII文字以外のデータを、電子メールで送信できるようにASCII文字に変換する仕組みをMIMEエンコードと呼びます。
以下に一般的に使用されることが多い、Base64エンコードについて簡単に解説します。
Base64エンコードとは
バイナリデータをテキストデータに変換するエンコード方式となり、以下のようなケースで利用されることがあります。
- 前述の電子メールの添付ファイル等の変換
- データベースやファイルシステムへの画像データ等の格納
- Web API等で利用するJSON形式のデータへの画像データ等の埋め込み
細かい変換内容の説明は割愛いたしますが、Base64エンコードではデータを3バイトずつに区切り、区切られた3バイトのデータを4バイトのASCII文字に変換する仕組みとなっております。
3バイトのデータが4バイトのデータに変換されるので、メールの送信時には、添付ファイルやメール本文が元のサイズの約1.33倍に変換されることとなり、変換された後の容量でメールサイズの上限のチェックが行われます。
弊社商品のSKYPCEにおいても一斉メール配信という、電子メールを配信する機能を有しており、添付ファイルを付けてのメール送信も可能で、添付可能なファイルサイズの上限も設定されておりますが、エンコード後のサイズに対して制限がかかるため、実質的に添付可能なファイルのサイズは上限のサイズよりも小さくなります。
まとめ
利用されている電子メールのサーバーやサービス等によって変わってきますが、エンコードによって、実質的に添付可能なファイルサイズやメール全体のサイズの上限は、設定されている送信や受信の容量の上限よりも少なくなることがある点はご注意いただければと思います。

