+
+
+@node transfer level, header, other operations of mime/editor-mode, Top
+@chapter transfer level
+
+Contents inserted in a message are represented by 7bit
+(@ref{(tm-en)7bit}), 8bit (@ref{(tm-en)8bit}) or binary
+(@ref{(tm-en)binary}).@refill
+
+If a message is translated by 7bit-through MTA (@ref{(tm-en)MTA}), there
+is no need to encode 7bit data, but 8bit and binary data must be encoded
+to 7bit data.@refill
+
+Similarly, if a message is translated by 8bit-through MTA, there is no
+need to encode 7bit or 8bit data, but binary data must be encoded to
+7bit or 8bit data.@refill
+
+@noindent
+@strong{[Memo]}
+@quotation
+EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
+encoded by base64. But I don't know EBCDIC. (^_^;
+
+Similarly, I wish ASCII-printable only MTA and code-conversion MTA
+disappeared. (^_^;@refill
+
+Maybe there are binary-through MTA, but I think it is not major.
+@end quotation
+
+@cindex{transfer level}@strong{transfer level} represents how range data is
+available. tm-edit has a variable
+@code{mime-editor/transfer-level} to represent transfer level.
+
+
+@defvar mime-editor/transfer-level
+
+transfer level.@refill
+
+If transfer level of a data is over it, a data is encoded to
+7bit.@refill
+
+Currently, 7 or 8 is available. Default value is 7.@refill
+
+In extension plan, EBCDIC will be 5, ASCII printable only will be 6,
+binary will be 9. But it will not be implemented.
+@end defvar
+
+
+
+@noindent
+@strong{[Memo]}
+@quotation
+transfer level is only for body, not for header (@ref{header}). RFC
+1521 extends RFC 822 (@ref{(tm-en)RFC 822}) to use 8bit data in body,
+but it requires to use us-ascii (@ref{(tm-en)us-ascii}) in header.
+@end quotation
+
+
+
+@node header, PGP, transfer level, Top
+@chapter Using non-ASCII characters in header
+
+RFC 1522 (@ref{(tm-en)RFC 1522}) defines representation of non-ASCII
+characters in header.@refill
+
+It is a format called as @cindex{encoded-word}@strong{encoded-word}
+(@ref{(tm-en)encoded-word}), it is available to represent every
+non-ASCII characters by 7bit (@ref{(tm-en)7bit}) to declare MIME charset
+(@ref{(tm-en)MIME charset}).
+
+
+@menu
+* evil setting in header:: If you can not allow encoded-word
+* API about header:: Functions and variables about header
+@end menu
+
+@node evil setting in header, API about header, header, header
+@section If you can not allow encoded-word
+
+It is wrong to use ``raw'' non-ASCII characters in header not to use
+encoded-word. Because there are various kinds of coded character set
+(@ref{(tm-en)Coded character set}) in the Internet, so we can not
+distinguish them if MIME charset (@ref{(tm-en)MIME charset}) is not
+declared.@refill
+
+For example, we can not distinguish iso-8859-1 (@ref{(tm-en)iso-8859-1})
+and iso-8859-2 (@ref{(tm-en)iso-8859-2}) if MIME charset is not
+declared.@refill
+
+However you can not permit to use encoded-word, please set to
+following variables:
+
+
+@defvar mime/field-encoding-method-alist
+
+Association-list to specify field encoding method. Its key is
+field-name, value is encoding method.@refill
+
+field-name allows string or @code{t} meaning any fields.@refill
+
+Encoding method allows following: @code{nil} means no-conversion,
+@code{mime} means to convert as encoded-word, symbol represent MIME
+charset means to convert as the coded character set instead of to
+convert as encoded-word.@refill
+
+field-name is searched from string. If it is not found, @code{t} is
+used.@refill
+
+Default value of @code{mime/field-encoding-method-alist} is
+following:
+
+@lisp
+(("X-Nsubject" . iso-2022-jp-2)
+ ("Newsgroups" . nil)
+ (t . mime)
+ ))
+@end lisp
+@end defvar
+
+
+In addition, if you want to specify by coded character set instead of
+field, please use @code{mime-eword/charset-encoding-alist}.
+(cf. @ref{API about header})
+
+
+
+@node API about header, , evil setting in header, header
+@section Functions and variables about header
+
+@deffn{Command} mime/encode-message-header &optional code-conversion
+
+It translate non-ASCII characters in message header of current buffer
+into network representation, such as encoded-words.@refill
+
+If @var{code-conversion} is non-@code{nil}, field not encoded by
+encoded-word is converted by @code{mime/field-encoding-method-alist}.
+@end deffn
+
+
+@defun mime/encode-field string
+
+It encodes @var{string} into encoded-words as a field.@refill
+
+Long lines are folded.
+@end defun
+
+
+@defun mime-eword/encode-string string &optional column mode
+
+It encodes @var{string} into encoded-words.@refill
+
+Long lines are folded.@refill
+
+@var{column} specifies start column. If it is omitted, 0 is
+used.@refill
+
+@var{mode} specifies where @var{string} is in. Available values are
+@code{text}, @code{comment}, @code{phrase}. If it is omitted,
+@code{phrase} is used.
+@end defun
+
+
+@defvar mime-eword/charset-encoding-alist
+
+Association-list of symbol represent MIME charset vs. nil, @code{"B"} or
+@code{"Q"}.@refill
+
+@code{nil} means not to encode as encoded-word. @code{"B"} means to use
+B-encoding. @code{"Q"} means to use Q-encoding.
+@end defvar
+
+
+
+@node PGP, Concept Index, header, Top
+@chapter PGP
+
+tm-edit provides PGP encryption, signature and inserting public-key
+features based on @cindex{PGP/MIME}@strong{PGP/MIME}
+(@ref{(tm-en)PGP/MIME}) (RFC 2015) or @cindex{PGP-kazu}@strong{PGP-kazu}
+(@ref{(tm-en)PGP-kazu}) (draft-kazu-pgp-mime-00.txt).@refill
+
+This feature requires pgp command and Mailcrypt package
+(@ref{(mailcrypt)}).@refill
+
+If you want to use this feature, please set @code{pgp-elkins} or
+@code{pgp-kazu} to variable @code{mimed-editor/signing-type} and
+variable @code{mime-editor/encrypting-type}.@refill
+
+If @code{pgp-elkins} is specified, PGP/MIME is used. If
+@code{pgp-kazu} is specified, PGP-kazu is used.
+
+
+@defvar mime-editor/signing-type
+
+Format of PGP signature.@refill
+
+It allows @code{pgp-elkins} or @code{pgp-kazu}.@refill
+
+Default value is @code{nil}.
+@end defvar
+
+
+@defvar mime-editor/encrypting-type
+
+Format of PGP encryption.@refill
+
+It allows @code{pgp-elkins} or @code{pgp-kazu}.@refill
+
+Default value is @code{nil}.
+@end defvar
+
+
+
+@node Concept Index, Function Index, PGP, Top
+@chapter Concept Index
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter Function Index
+
+@printindex fn
+
+@node Variable Index, , Function Index, Top
+@chapter Variable Index
+
+@printindex vr
+@bye