If the entire EightBitMode option is missing, the default becomes p (pass 8-bit and convert MIME). If you configure with V8's mc technique, the default is also p. Depending on the key selected and the nature of incoming mail, any of several error messages can be generated: Eight bit data not allowed
Cannot send 8-bit data to 7-bit destination
host does not support 8BITMIME
Conversion from 8 to 7 bits is complex. First, sendmail looks for a MIME Content-Type: header. If the header is found, sendmail looks for and, if found, uses a MIME boundary definition to delimit conversion.[29] If more than one-fourth of a section has the high bit set after reading at least 4 kilobytes of data, sendmail presumes Base64 encoding[30] and inserts the following MIME header into the data stream:
Content-Transfer-Encoding: base64 Base64 encoding converts 8-bit data into a stream of 6-bit bytes that contain universally readable text. Base64 is described in RFC1521. If less than one-fourth of the data that was scanned has the high bit set or if the type in the Content-Type: header is listed in $=q ($=q), the data is converted from 8 to 7 bits by using quoted-printable encoding, and the following MIME header is inserted into the stream: Content-Transfer-Encoding: quoted-printable Under quoted-printable encoding, ASCII control characters (in the range 0x00 through 0x20), the tab character, the = character, and all characters with the high bit set are converted. First an = character is output, then the character is converted to an ASCII representation of its hexadecimal value, and that value is output. For example: 0xb9 becomes =B9 Under this scheme, the = character is considered binary and is encoded as =3D. If the F=3 flag (F=3) is set for a selected delivery agent, the characters: ! " # $ @ \ [ ] ^ ` { | } ~ are also converted. If F=3 is not set, those characters are output as is. Lines longer than 72 characters (bytes) are broken with the insertion of an = character and the E= end-of-line characters defined for the current delivery agent. Any lines that end in a whitespace character have that whitespace character converted to quoted-printable, even if the line has fewer than 72 characters. Quoted-printable encoding is described in RFC1521. Where m (mimefy) might not be appropriate for a given delivery agent, the F=8 flag (F=8) can be specified to force p (pass8bit) behavior. The EightBitMode option is safe. Even if it is specified from the command line, sendmail retains its special privileges. EightBitMode=mimefyConvert unlabeled 8-bit input to BITMIME, and do any necessary conversion of BITMIME to 7 bits. When running as a daemon receiving mail via SMTP, advertise the BITMIME ESMTP keyword as valid. This key specifies that your site will be a MIME installation. EightBitMode=passPass unlabeled 8-bit input through as is. Convert labeled BITMIME input to 7 bits as required by any delivery agent with the F=7 flag set (F=7), or any SMTP server that does not advertise BITMIME. EightBitMode=strictReject unlabeled 8-bit input. Convert BITMIME to 7 bits as required by any delivery agent with the F=7 flag set (F=7), or any SMTP server that does not advertise BITMIME. |