** New operation mode: proxy ** Command line option precedence Command line options take precedence over configuration file statements. ** elif statement A familiar `elif' statement is supported, e.g.: if condition-1 action-list-1 elif condition-2 action-list-2 elif condition-3 action-list-3 else action-list-4 fi ** New CONTROL statement esmtp-auth-delayed. When set to `yes', this statement instructs Anubis to postpone ESMTP authentication until MAIL command is issued by the client. This allows to change authentication credentials in the SMTP section (see below). ** SMTP section The new section "SMTP" is invoked each time an SMTP command is received. This section may alter the command's argument, using the "modify command", e.g.: BEGIN SMTP regex :extended modify command [ehlo] "foo.bar.net" if command ["mail from:"] "<(.*)>(.*)" modify command ["mail from:"] "<email@example.com>\2" fi END It is also allowed to use esmtp-* keywords in this section, provided that `esmtp-auth-delayed yes' is set in the CONTROL section. Changes in the ESMTP authentication credentials take effect if they occur either before receiving MAIL command from the client, or when handling this command, e.g.: BEGIN SMTP if command ["mail from:"] "<smith(\+.*)?@@example.net>" esmtp-auth-id smith esmtp-password guessme else esmtp-auth no fi END ** New keywords: log-facility and log-tag ** Guile output By default Scheme's standard error and output ports are redirected to syslog, using priorities `err' and `warning' correspondingly. ** MySQL options file When using MySQL for Anubis user database, the database parameters and access credentials are read from the file /etc/my.cnf, section "anubis". Additionally, two URL parameters are provided: "options-file", which sets the name of the options file, and "options-group", which sets the name of the group.
* Filters and filter pipes A "filter" is a mailutils entity which converts its input to output using a predefined set of rules. Filters are used to implement such basic conversions as base64 and quoted-printable. A "filter pipe" is a string consisting of filter invocations delimited by pipe characters ('|'). Each invocation is a filter name optionally followed by a comma-separated list of parameters. Filter pipes are passed in string arguments to various MFL functions in order to perform string data conversions. Filter pipes are described in detail in the Section 5.7 "Filtering functions" of the Mailfromd Manual. * Decoding MIME messages Please refer to the subsection 5.18.3, "MIME functions" in the Mailfromd Manual for a detailed description of the functions below. ** New functions - string filter_string (string input, string filter_pipe) Transforms the string input using filters defined in filter_pipe and returns the result. - void filter_fd (number src_fd, number dst_fd, string filter_pipe) Reads data from file descriptor src_fd, passes it through filters defined in filter_pipe and writes the result to the file descriptor dst_fd - string message_content_type (number nmsg) Returns the content type of the message or message part, identified by its argument. - number message_body_decode (number nmsg) (module mime.mf) Decodes the body of the message or message part nmsg. - number message_part_decode(number nmsg, number part) (module mime.mf) Decodes the body of the given part of a MIME message. ** Changes to message_body_to_stream Optional third argument contains a filter pipe, which will be applied to the data obtained from body before passing it to the output stream. Special filter "mimedecode" is defined, which decodes the data in accordance with the message content transfer encoding.
* Improved mailbox locking This fixes several bugs. * Changes in the 'locking' configuration statement. New statement 'type' configures the type of locking to use. Possible values are: 'default', 'dotlock', 'external', 'kernel', and 'null'. New statement 'pid-check' instructs mailutils to check if the PID of the process owning the lock still exists in the process table. If it doesn't the lock is considered stale and is removed. The 'flags' statement is deprecated. If used, an error message is issued along with a suggestion on what statement to use instead: Flag Statement to use --------+------------------- E type external R retry-count N T expire-timeout N P pid-check true The 'retry-timeout' statement is a misnomer and is therefore deprecated. Use 'retry-sleep' instead. * mail utility ** Fix semantics of mail sending and saving commands ** Fix the -F option ** Improve POSIX mailx compatible mode ** Compose escapes are recognized only in interactive mode This fixes https://savannah.gnu.org/bugs/?60937 ** New mail variables - fullnames Controls whether personal parts of emails are preserved in recipient addresses when replying. Default is true. - outfilename Defines the algorithm to convert the recipient email to the name of the file used to record outgoing messages to that recipient. This affects the following commands: Copy, Save, Mail, followup, and Followup. This is a string variable, that can take one of the following values: "local" - Local part of the email address is taken as the file name. This is the default. "email" - Entire email is takes as the file name. "domain" - Domain part of the email is used as the file name. - useragent When set, the User-Agent header will be added to each outgoing message. This is the default. The use of X-Mailer header has been discontinued. * Bugfixes ** QP decoder: Accept soft line breaks (RFC 2045, 6.7, page 19). ** Fix stream reference policy in filter streams. ** Various bugfixes in IMAP client. ** Fix handling of single-path MIME messages.
* Support for Guile 2.2 * Bugfixes * Improved testsuite
* Requires Mailutils 3.4