`type known` = `[`

`|` ``Base64`
`|` ``Bit7`
`|` ``Bit8`
`|` ``Binary`
`|` ``Quoted_printable`

`]```

Text or binary are the type of the plaintext. For Base64, if the mode is text, '\n' is turned into '\r\n' when encoding, and vice versa.

`include sig ... end`
`val sexp_of_known : known ‑> Base.Sexp.t`
`val compare_known : known ‑> known ‑> int`
`val hash_fold_known : Base.Hash.state ‑> known ‑> Base.Hash.state`
`val hash_known : known ‑> Base.Hash.hash_value`
`type t` = `[`

`|` `known`
`|` ``Unknown of string`

`]```
`include sig ... end`
`val sexp_of_t : t ‑> Base.Sexp.t`
`val compare : t ‑> t ‑> int`
`val hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.state`
`val hash : t ‑> Base.Hash.hash_value`
`val default : known`
`val default' : t`
`val of_headers_or_default : ?⁠ignore_base64_for_multipart:bool ‑> Email_message__.Headers.t ‑> t`

Determine an encoding based on email headers. `ignore_base64_for_multipart` is useful because some clients can't read RFCs and incorrectly indicate a transfer encoding of base64 for multipart messages.

`include Core.Stringable.S with type t := t`
`type t`````
`val of_string : string ‑> t`
`val to_string : t ‑> string`