構文
解説ContentType クラスの情報は、電子メールを表示するソフトウェアが、そのコンテンツを適切に表すことができるような方法で電子メール メッセージに格納されたデータを記述するために使用されます。ContentType は、添付データのコンテンツの種類を指定するために Attachment クラスで使用されます。
Content-Type ヘッダーの構文については、RFC 2045 セクション 5.1 を参照してください。RFC 2046 では、MIME メディア タイプとそれらのパラメータに関する詳細情報が提供されています。これらの RFC については http://www.ietf.org を参照してください。
使用例添付データを含んだ電子メール メッセージを作成し、添付データの ContentDisposition プロパティを表示するコード例を次に示します。
public static void CreateMessageWithAttachment(string server) { // Specify the file to be attached and sent. // This example assumes that a file named Data.xls exists in the // current working directory. string file = "data.xls"; // Create a message and set up the recipients. MailMessage message = new MailMessage( "jane@contoso.com", "ben@contoso.com", "Quarterly data report.", "See the attached spreadsheet."); // Create the file attachment for this e-mail message. Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); // Add time stamp information for the file. ContentDisposition disposition = data.ContentDisposition; disposition.CreationDate = System.IO.File.GetCreationTime(file); disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); disposition.ReadDate = System.IO.File.GetLastAccessTime(file); // Add the file attachment to this e-mail message. message.Attachments.Add(data); //Send the message. SmtpClient client = new SmtpClient(server); // Add credentials if the SMTP server requires them. client.Credentials = CredentialCache.DefaultNetworkCredentials; client.Send(message); // Display the values in the ContentDisposition for the attachment. ContentDisposition cd = data.ContentDisposition; Console.WriteLine("Content disposition"); Console.WriteLine(cd.ToString()); Console.WriteLine("File {0}", cd.FileName); Console.WriteLine("Size {0}", cd.Size); Console.WriteLine("Creation {0}", cd.CreationDate); Console.WriteLine("Modification {0}", cd.ModificationDate); Console.WriteLine("Read {0}", cd.ReadDate); Console.WriteLine("Inline {0}", cd.Inline); Console.WriteLine("Parameters: {0}", cd.Parameters.Count); foreach (DictionaryEntry d in cd.Parameters) { Console.WriteLine("{0} = {1}", d.Key, d.Value); } data.Dispose(); }
継承階層
スレッド セーフ
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照
構文
解説
使用例// The following example sends a summary of a log file as the message // and the log as an e-mail attachment. public static void SendNamedErrorLog(string server, string recipientList) { // Create a message from logMailer@contoso.com to recipientList. MailMessage message = new MailMessage( "logMailer@contoso.com", recipientList); message.Subject = "Error Log report"; string fileName = "log.txt"; // Get the file stream for the error log. // Requires the System.IO namespace. FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); StreamReader s = new StreamReader(fs); int errors = 0; while (s.ReadLine() != null) { // Process each line from the log file here. errors++; } // The e-mail message summarizes the data found in the log. message.Body = String.Format("{0} errors in log as of {1}", errors, DateTime.Now); // Close the stream reader. This also closes the file. s.Close(); // Re-open the file at the beginning to make the attachment. fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); // Make a ContentType indicating that the log data // that is attached is plain text and is named. ContentType ct = new ContentType(); ct.MediaType = MediaTypeNames.Text.Plain; ct.Name = "log" + DateTime.Now.ToString() + ".txt"; // Create the attachment. Attachment data = new Attachment(fs, ct); // Add the attachment to the message. message.Attachments.Add(data); // Send the message. // Include credentials if the server requires them. SmtpClient client = new SmtpClient(server); client.Credentials = CredentialCache.DefaultNetworkCredentials; client.Send(message); data.Dispose(); // Close the log file. fs.Close(); return; }
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照
構文
例外
解説
使用例// The following example sends a summary of a log file as the message // and the log as an e-mail attachment. public static void SendNamedErrorLog(string server, string recipientList) { // Create a message from logMailer@contoso.com to recipientList. MailMessage message = new MailMessage( "logMailer@contoso.com", recipientList); message.Subject = "Error Log report"; string fileName = "log.txt"; // Get the file stream for the error log. // Requires the System.IO namespace. FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); StreamReader s = new StreamReader(fs); int errors = 0; while (s.ReadLine() != null) { // Process each line from the log file here. errors++; } // The e-mail message summarizes the data found in the log. message.Body = String.Format("{0} errors in log as of {1}", errors, DateTime.Now); // Close the stream reader. This also closes the file. s.Close(); // Re-open the file at the beginning to make the attachment. fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); // Make a ContentType indicating that the log data // that is attached is plain text and is named. ContentType ct = new ContentType(); ct.MediaType = MediaTypeNames.Text.Plain; ct.Name = "log" + DateTime.Now.ToString() + ".txt"; // Create the attachment. Attachment data = new Attachment(fs, ct); // Add the attachment to the message. message.Attachments.Add(data); // Send the message. // Include credentials if the server requires them. SmtpClient client = new SmtpClient(server); client.Credentials = CredentialCache.DefaultNetworkCredentials; client.Send(message); data.Dispose(); // Close the log file. fs.Close(); return; }
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照
オーバーロードの一覧| 名前 | 説明 |
|---|---|
| ContentType () | ContentType クラスの新しい既定のインスタンスを初期化します。 |
| ContentType (String) | 指定した文字列を使用して、ContentType クラスの新しいインスタンスを初期化します。 |
参照
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| Boundary | このインスタンスで表される Content-Type ヘッダー内に含まれる境界パラメータの値を取得または設定します。 |
| CharSet | このインスタンスで表される Content-Type ヘッダー内に含まれる文字セット パラメータの値を取得または設定します。 |
| MediaType | このインスタンスで表される Content-Type ヘッダー内に含まれるメディア タイプの値を取得または設定します。 |
| Name | このインスタンスで表される Content-Type ヘッダー内に含まれる名前パラメータの値を取得または設定します。 |
| Parameters | このインスタンスで表される Content-Type ヘッダー内に含まれるパラメータを格納しているディクショナリを取得します。 |
参照
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Equals | オーバーロードされます。 オーバーライドされます。 |
| GetHashCode | オーバーライドされます。 指定した ContentType オブジェクトのハッシュ コードを確認します。 |
| GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
| ToString | オーバーライドされます。 この ContentType オブジェクトの文字列形式を返します。 |
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
参照MIME プロトコルの Content-Type ヘッダーを表します。
ContentType データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| Boundary | このインスタンスで表される Content-Type ヘッダー内に含まれる境界パラメータの値を取得または設定します。 |
| CharSet | このインスタンスで表される Content-Type ヘッダー内に含まれる文字セット パラメータの値を取得または設定します。 |
| MediaType | このインスタンスで表される Content-Type ヘッダー内に含まれるメディア タイプの値を取得または設定します。 |
| Name | このインスタンスで表される Content-Type ヘッダー内に含まれる名前パラメータの値を取得または設定します。 |
| Parameters | このインスタンスで表される Content-Type ヘッダー内に含まれるパラメータを格納しているディクショナリを取得します。 |
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Equals | オーバーロードされます。 オーバーライドされます。 |
| GetHashCode | オーバーライドされます。 指定した ContentType オブジェクトのハッシュ コードを確認します。 |
| GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
| ToString | オーバーライドされます。 この ContentType オブジェクトの文字列形式を返します。 |
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
参照(contentType から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/12/15 19:10 UTC 版)
メディアタイプ(英: media type(s))は、ファイルやインターネット上で転送されるデータ(コンテンツ)の形式を識別するためのコード体系である[1]。MIMEタイプやコンテンツタイプ[2](コンテントタイプ、content type)とも表記される。その具体的な識別子は、text/plainのように、スラッシュで区切る表記が特徴的である。
公式には、IANAがメディアタイプを管理している。現在の形式のメディアタイプは、RFC 1341のMIMEの仕様の一部として定義されたことに始まる。 RFC 1341では、電子メールの本文や添付ファイルの種類の記述に用いている。その後、HTTP[3]などその他のインターネットプロトコルや、HTML[4]のようなファイル形式でも同様の目的に使用されるようになっていった。
RFC 2046や RFC 6838など、メディアタイプに関するRFCが複数存在するほか、WHATWGのMIME Sniffing Standardの「4 MIME types」にもメディアタイプ(MIMEタイプ)に関する規定が存在する。
RFC 2046の技術的内容および構成を変更しない日本語訳が、日本産業規格JIS X 5810-2:2008「多目的インターネットメール拡張 (MIME) ―第2部: メディア型」として発行されている[5]。
日本語では「メディア種別」とも訳される[6]が、定訳はなく、「メディアタイプ」という外来語カナ表記がそのまま使われることも多い。本記事では「メディアタイプ」で統一するものとする。
RFC 1341では、コンテンツタイプの値 (Content-Type Values) またはMIMEタイプ (MIME type) と表記されている。その後、 RFC 1590でメディアタイプの名称が定められた[7]。一部のRFCではインターネットメディアタイプ (Internet Media Type) と表記する事例もある。
HTMLおよび関連する仕様では、このメディアタイプを指す用語としてMIMEタイプ (MIME type) を用いている。この理由は、CSSメディアクエリにおける「メディアタイプ」(media type) との混同を避けるためである[8]。
メディアタイプは、トップレベルメディアタイプ (英: top-level media type、最上位メディア型[5])と(メディア)サブタイプ(英: subtype / sub-type、下位型[5])、そして非必須のパラメーターの組み合わせで構成される。
たとえば、とあるHTMLファイルについてtext/html; charset=UTF-8というメディアタイプが付与されたとする。この例では、textがトップレベルメディアタイプ、htmlがサブタイプ、charset=UTF-8が文字コードを表すパラメーターである。
サブタイプは「ツリー」または「ファセット」と呼ばれるさらなる分類がなされる。
構文:
トップレベルメディアタイプ名 / サブタイプ名 [ ; パラメーター ]トップレベルメディアタイプ名 / [ ツリー. ] サブタイプ名 [ +接尾辞 ] [ ; パラメーター ]パラメーターは複数付与する場合もある。例: text/plain; charset=iso-2022-jp; format=flowed; delsp=yes
トップレベルメディアタイプは、全般的な大分類を表す部分である。
トップレベルメディアタイプごとに未知のサブタイプの扱いが規定されており、受信側は自分の扱えないサブタイプであっても最低限の取り扱いが可能となる。text の場合は text/plain、application/octet-stream・multipart の場合は multipart/mixed である。application・image・audio・videoなどは、未知のサブタイプについてapplication/octet-streamとして扱うよう規定している。
個別の最上位メディア型[5]は次のものが存在する。
plainメディア下位型はどんな種類の指令(例えば「文字の大きさを変更する」とか「動画を埋め込む」とか)も含まないプレーンテキストを表す。
複合の最上位メディア型[5]は次の2つである。
例示用の最上位メディア型としてexampleが RFC 4735で規定されている。
非公式な最上位メディア型としてchemicalが存在する[9][10][11]。
インターネットなどで広く利用されているものや、標準化されているものを中心に例示する。
application/octet-stream(任意のバイナリデータ)application/javascriptapplication/jsonapplication/x-www-form-urlencodedapplication/xmlapplication/zipapplication/pdf(PDF文書)application/xhtml+xml(XHTMLテキスト)audio/mpegaudio/vorbistext/csstext/html(HTMLテキスト)text/plain(プレーンテキスト)image/png(PNG画像)image/jpeg(JPEG画像)image/gif(GIF画像)video/mpeg(MPEG動画)message/rfc822(Eml形式)multipart/alternative(HTMLメールにおいて、HTMLによるメッセージと同等のプレーンテキストによるメッセージを用意する場合のように、同じ情報を異なる形式で表したマルチパート)application/x-www-form-urlencoded(HTTPのPOSTメソッドによるフォームデータの送信)multipart/form-data(同上、主にファイルアップロードを伴う場合)全てのメディアタイプは、IANAの登録手続きを経て登録されるべきとされる。個々のサブタイプ名はツリーに分類されて登録される。この場合、サブタイプ名に"ツリー."接頭辞が付与されたものとなる[注釈 1]。現在、次のツリーが存在する: 標準、企業、個人、私的利用。これらのツリーは1996年11月の RFC 2048で最初に定義され、現在は RFC 6838に置き換えられている。ツリーによって登録の手続きに差異がある。
登録ツリーそのものの追加が必要な場合、IETFの標準化作業によって決定される (RFC 6838 3.5. Additional Registration Trees[12])。
標準ツリーに属するメディアタイプは、原則として接頭辞を持たない[注釈 2]。
標準ツリーへの追加には、IESGで承認を受けたIETF仕様またはIANAが認める標準化を行う団体からの登録のいずれかが必要である。
構文: type / メディアタイプ名 [+接尾辞]
例: application/xhtml+xml、image/png
ベンダーツリーは、公開されている製品に関連するメディアタイプで用いられる。vnd.ファセットが用いられる (RFC 6838 3.2. Vendor Tree[12])。
この文脈では、ベンダー(販売元)と開発元は同義である。すなわち、非営利な団体・コンソーシアムであっても、自身が開発したデータ形式についてベンダーツリーへの登録申請が可能である。
また、ベンダーツリーへの登録は、必ずしもベンダーや開発元によって申請される必要は無く、メディアタイプの登録を望む第三者が申請してもよい。ただしその場合でも、登録対象のタイプは、それに関するソフトウェアのベンダー・組織に属することになり、ベンダー・組織はいつでもそのタイプに対する所有権を表明できる。
構文:
type / vnd. メディアタイプ名 [+接尾辞] - 製作元が著名な場合type / vnd. 製作元の名称 . メディアタイプ名 [+接尾辞] - 製作元の名称はIANAに承認される必要があるtype / vnd. 製作元の名称 . 製品名 . メディアタイプ名 [+接尾辞] - 製作元の名称と製品名はIANAに承認される必要があるパーソナルツリーは、実験的なタイプや商業的に頒布される製品に関係しないタイプを含む。prs.ファセットが用いられる。
構文: type / prs. メディアタイプ名 [+接尾辞]
"x."ツリーは、私的利用であったり、外部に公開しない環境で当事者同士の積極的な合意の下での利用であったりする場合に用いられる。このツリーでの登録は受け付けられていない。
未登録で使用できるメディアタイプの命名規則は以下のように変遷している。
登録不要のメディアタイプ名を使用するのではなく、できるだけ登録されるべきとされている。このため、ベンダーツリー・パーソナルツリーへの登録手続きは簡略化されている[注釈 3]。もちろん、標準化団体の標準化手順を通して、標準ツリーへの登録を申請してもよい。
広く運用されているメディアタイプ("x-"接頭辞を持つファセットのないサブタイプ)で未登録のものについては、可能な限り適切なファセット付きのサブタイプ名で登録し直すべきとされている。それが困難な場合、メディアタイプのレビューアとIESGの承認の後、ファセットのない名称のままの登録も可能である (RFC 6838 Appendix A. Grandfathered Media Types[12])。
image/x-icon → image/vnd.microsoft.iconapplication/x-gzip → application/gzipx-付きのまま登録された例: application/x-www-form-urlencoded[13]構文: type / x. メディアタイプ名 [+接尾辞]
接尾辞は、登録対象のメディアタイプに対して、元となるデータ形式をメディアタイプの命名に加えるものである。著名な構造を持つメディアタイプについては、IANAに登録されている適切な"+suffix"を登録時に付与すべきとされている。未登録の接尾辞は使用すべきではない。接尾辞の登録手続きもRFC 6838で定められている (RFC 6838 6. Structured Syntax Suffix Registration Procedures[12])。
RFC 6838の当初時点の接尾辞は、次のとおりである。現在登録されている接尾辞の一覧はStructured Syntax Suffix Registryを参照。
ただし、+xmlの接尾辞は、サフィックスがIANAで管理されるようになる前、2001年1月の
RFC 3023から定義されている。
The following subsections define registration "trees" that are distinguished by the use of faceted names, e.g., subtype names that begin with a "tree." prefix.[12]
Media types in the standards tree MUST NOT have faceted names, unless they are grandfathered in using the process described in Appendix A.[12]
However, with the simplified registration procedures described above for vendor and personal trees, it should rarely, if ever, be necessary to use unregistered types. Therefore, use of types in the "x." tree is strongly discouraged.[12]
These types, previously called "MIME Types", are now called "Media Types".
これらには、IANAに登録されていないメディアタイプも収録されている。
file)出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/03/24 07:00 UTC 版)
「Multipurpose Internet Mail Extensions」の記事における「Content-Type」の解説
「メディアタイプ」も参照 このメッセージ中のデータの種類を指定する。一般的な書式は次の通り。 Content-Type: type/subtype; parameter typeは大分類となるデータの種類を指定する。subtypeにはより詳細な形式を指定する。parameterは追加の情報を指定するもので、複数指定できる。電子メールメッセージにおいて使われる例を以下に示す。 text/plain; charset=iso-2022-jp; format=flowed; delsp=yes(プレーンテキスト、ISO-2022-JP、RFC 3676 で規定されるflowedおよびdelspの文字列折り返し処理を適用) text/html; charset=UTF-8(HTMLテキスト、UTF-8) multipart/alternative(HTMLメールにおいて、HTMLによるメッセージと同等のプレーンテキストによるメッセージを用意する場合のように、同じ情報を異なる形式で表したマルチパート) type毎に未知のsubtypeの扱いが規定されており、受信側は自分の扱えないsubtypeであっても最低限の取り扱いが可能となる。text の場合は text/plain、application/octet-stream、multipart の場合は multipart/mixed である。application、image、audio、videoなどは、未知のsubtypeについてapplication/octet-streamとして扱うよう規定している。
※この「Content-Type」の解説は、「Multipurpose Internet Mail Extensions」の解説の一部です。
「Content-Type」を含む「Multipurpose Internet Mail Extensions」の記事については、「Multipurpose Internet Mail Extensions」の概要を参照ください。