ImapX lib を使用して Gmail からメールを受信しています。
メールの本文の Content-Type と Content-Encoding-Trafering の多くのタイプを取得します。それをデコードする方法は?
ImapX lib を使用して Gmail からメールを受信しています。
メールの本文の Content-Type と Content-Encoding-Trafering の多くのタイプを取得します。それをデコードする方法は?
MIME 標準は、RFC 2045 から 2048 で文書化されています。すべてを読みたいとは思わないかもしれませんが、MIME を処理する前に、MIME の基本を理解しておく必要があります。 http://en.wikipedia.org/wiki/MIMEは良い出発点です。
はContent-Transfer-Encoding
、5 つの異なる値のいずれかを持つことができます。これらのうち、7bit
、8bit
、およびbinary
はデコードを必要としません (文字セットと行の長さについて想定できる点が異なります。 と の違いは8bit
、は限られた長さの行を持つbinary
こと8bit
が保証されていることです。時々野生)。
quoted-printable
およびbase64
デコードが必要です。しかし、合理的に最新のプログラミング言語には、このためのライブラリ関数が既に用意されています。
階層はContent-Type
基本的に無制限です。トップレベル タイプ ( text
、image
、audio
、application
など) とサブタイプの標準セット ( 、 など)text/plain
の数は限られtext/html
ていますが、さらに多くのタイプが登録されており、標準ではタイプを登録する必要はありません。とにかく、これらは通常、デコードする必要はありません。それらはコンテンツのタイプを宣言するので、受信者はそれらをどうするかを知ることができます。一般的なキャッチオールはapplication/octet-stream
、基本的に「ここにデータのブロブがあります。人間の受信者がこれをどう処理するかを知っていることを願っています」という意味であり、多くのタイプでは、ローカル ディスクにダウンロードする以外に賢明なデフォルト アクションはありません。すべての汎用電子メール クライアントはtext/plain
、ユーザーに直接表示されます。Content-Disposition
ほとんどの最新のクライアントはtext/html
、他のいくつかのタイプをインラインで表示します。しかし、コンテンツで何をしたいかは、何よりもまず、コーディングしているアプリケーションの種類によって決まります。