付録C.1 処理形式
(1) MIME形式受信時
Sendmailからメールを受信したとき,Mail - SMTPはそのメールがMIME形式か,従来のRFC822形式かを自動的に認識します。ここでは,MIME形式のメールを受信した場合に,Mail - SMTPがどのように処理するかをデータ種別ごとに示します。
- テキストデータ(text/plain,message/rfc822など)の場合
- 先頭のテキストボディは本文として,二つ目以降のテキストボディは添付ファイルとして処理します。
- charsetが「iso-2022-jp」と指定されている場合,JIS/SJIS/EUCのいずれかを自動判定して処理します。charsetが「utf-7」,「utf-8」または「utf-16」と指定されている場合,Unicodeとして処理します。「iso-2022-jp」「utf-7」「utf-8」「utf-16」以外の文字コードが指定してある場合,「iso-2022-jp」として処理します。
- バイナリデータ(application/octet-stream,video/mpegなど)の場合
- ボディごとに添付ファイルとして処理します。
- ファイル名の取得は,「Content-Disposition」フィールドに続く「filename」フィールドから取得します。このフィールドがなかった場合には「Content-Type」フィールドに続く「name」フィールドから取得します。ファイル名の取得に失敗した場合(ファイル名フィールドがない場合も含む)は,Mail - SMTPがファイル名を生成します。
- マルチパートボディ(multipart/mixedなど)の場合
- マルチパートボディの中に,さらにマルチパートボディが定義されている場合はヘッダ中に定義された区切り文字でボディを分割します。
- 注意
- Mail - SMTPは,Sendmailから受信したメールのSMTPヘッダ中に,「MIME-Version:」がある場合に限ってMIME形式のメールと認識します。MIMEデータを使用してGroupmaxユーザとインターネットとの間でメールを交換する場合は,SMTP側で必ず「MIME-Version:」ヘッダを生成してください。なお,設定値MIMEヘッダの解析(mime_header_analyze)により「MIME-Version:」ヘッダを仮定してヘッダ解析を行うことができます。詳細については「2.3.4 edit_format(4)」を参照してください。
- 未サポートのコンテントタイプ(xxxxx/yyyyy)の場合
- Mail - SMTPでサポートしていないContent-Typeが指定されていた場合,およびContent-Typeが正しく指定されていない(Content-Typeヘッダがない,またはサブタイプがない等)場合には,そのボディをテキストファイルとして受信します。
- 主題,添付ファイル名,コメントの場合
- 主題または添付ファイル名またはコメントがMIMEエンコードされている場合,以下の形式をサポートしています。
=?charset?encoding?encoded-text"?=
- charsetは,「us-ascii」「iso-2022-jp」「utf-7」「utf-8」「utf-16」を想定しており,想定外のcharsetの場合には,「iso-2022-jp」として処理します。
- encodingは,quoted-printableを示す「Q」とbase64を示す「B」をサポートしています。
- encoding-textは空白以外のASCII文字である必要があります。
- 以下の場合には,デコード処理は行いません。
- encodingが「Q」または「B」以外の場合
- encoding-textに空白があった場合
- RFC2231方式でエンコードされた添付ファイル名の場合
- 添付ファイル名がRFC2231方式でエンコードされている場合,以下の形式をサポートしています。
- 添付ファイル名を取得するパラメタ名
- Content-Typeヘッダのname*で始まるサブパラメタ
- Content-Dispositionヘッダのfilename*で始まるサブパラメタ
- 添付ファイル名のフォーマット
charset'language'encoded-text
- charsetは,「us-ascii」「iso-2022-jp」「utf-7」「utf-8」「utf-16」を想定しており,想定外のcharsetの場合には,「iso-2022-jp」として処理します。
- languageは,取得しません。指定されていても無視します。
- encoding-textは添付ファイル名をASCII文字で指定する必要があります。
- 注意
- RFC2231方式のファイル名取得時にファイル名に以下の文字列が含まれている場合には添付ファイル名から文字列を削除します。
- “name*”から”=”までの文字列
- “filename*”から”=”までの文字列
- 注意
- MIME構造情報ファイルの設定(MIME_STRUCTURE)の設定値としてonを設定している場合,POP3/IMAP4クライアントへのメールダウンロード時,および代行受信時には受信時のE-mailヘッダを復元しますので,RFC2231方式の添付ファイル名が参照できるかはメーラに依存します。このため,RFC2231方式に対応していないメーラの場合,文字化けが発生する場合があります。
(2) MIME形式送信時
Groupmax MailからSendmailにメールを送信する場合,Mail - SMTPが実行する処理は,SEND_CODEの設定内容によって異なります。SEND_CODEの設定法については「2.3.4 edit_format」を参照してください。
- jis,sjis,eucのどれかが設定されている場合は,RFC822形式で送信する。
- mimeが設定されている場合は,MIME形式で送信する。