GNU Mailutils |
|
General-Purpose Mail Package |
Official GNU Software |
The ‘encoded-character’ extension complies with RFC 5228, part 2.4.2.4. It provides a way of incorporating multibyte sequences in a Sieve script using only ASCII characters. This is a built-in extension. It is enabled using the following statement:
require "encoded-character";
When this extension is enabled, the sequences ‘${hex: ...}’, and ‘${unicode: ...}’ can appear inside of quoted strings.
The sequence
${hex: XX}
where XX is a sequence of one or two-digit hex numbers separated by any amount of whitespace, is replaced with the octets with the hexadecimal values given by each hex number. For example,
"${hex: 24 24}" ⇒ "$$"
Thus, the following script will discard any message containing three contiguous dollar signs in its ‘Subject’ header:
require "encoded-character"; if header :contains "Subject" "$${hex:24 24}" { discard; }
The ‘hex:’ keyword is case-insensitive. If XX contains invalid hex numbers, the entire sequence is left verbatim. This is illustrated by the following example:
"$${hex:40}" ⇒ "$@" "${hex: 40 }" ⇒ "@" "${HEX: 40}" ⇒ "@" "${hex:40" ⇒ "${hex:40" "${hex:400}" ⇒ "${hex:400}" "${hex:4${hex:30}}" ⇒ "${hex:40}"
The sequence
${unicode: HEXNUM}
where HEXNUM is a list of hexadecimal numbers separated with whitespace, will be replaced by the UTF-8 encoding of the specified Unicode characters, which are identified by the hexadecimal value of HEXNUM. For example, the following string represents a single ‘@’ sign:
"${UNICODE:40}"
Similarly to ‘hex:’, the ‘unicode:’ indicator is case insensitive. The following examples demonstrate the handling of several valid and invalid encodings:
"${unicode:40}" ⇒ "@" "${ unicode:40}" ⇒ "${ unicode:40}" "${UNICODE:40}" ⇒ "@" "${UnICoDE:0000040}" ⇒ "@" "${Unicode:40}" ⇒ "@" "${Unicode:Cool}" ⇒ "${Unicode:Cool}" "${unicode:200000}" ⇒ error "${Unicode:DF01} ⇒ error
This document was generated on January 2, 2022 using makeinfo.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.