Mailfromd is a general-purpose mail filtering daemon for Sendmail and Postfix. It is able to filter both incoming and outgoing messages using criteria of arbitrary complexity, supplied by the administrator in the form of a script file.The program interfaces with Sendmail using Milter protocol. Mailfromd provides the following basic features: flexible programming language for writing filter scripts, sender address verification, SPF, DNSBL, greylisting and whitelisting, controlling mail sending rate.Requirements:· GNU Mailutils· Sendmail· GDBM· Berkeley DBWhat's New in This Release:· doc/mailfromd.texi: Update· src/pp.c (next_line): Bugfix · National Language Support · The program includes National Language Support. Polish and Ukrainian· translations are available. · NLS Functions · NLS functions allow to localize your filter scripts for a particular· language. The following functions are implemented: bindtextdomain,· dgettext, dngettext, textdomain, gettext, ngettext. In addition, · macros _() and N_() are also provided. · GNU Emacs MFL Mode · This release comes with the file `mfl-mode.el', providing MFL mode forGNU Emacs. This mode facilitates editing MFL source files. By default, the new mode is installed whenever configure determines the presence of GNU Emacs on your machine. See the documentation, node `Using MFL Mode' for the detailed discussion of this mode including customization information. · Input files are preprocessed before compilation. · The default preprocessor is M4, but this can be changed (or disabled) at configuration time (see `DEFAULT_PREPROCESSOR' variable and `--with-preprocessor' command line option). · New atom $# · Returns the number of the arguments passed to the function. · New atom @parm · Returns the position of parameter `parm' in the function argument list. It can be used, for example, to check whether an optional argument value is passed to the function, e.g.:func foo(string x; number n)do if $# > @n /* `n' is passed */ ...· The default preprocessor setup script provides a macro `define' designed to be used for this purpose: func foo(string x; number n) do if defined(n) /* `n' is passed */ ...· sprintf· The built-in function `sprintf' is available with the same semanticsas its C counterpart. · Discontinued support for deprecated features:· `&code' form to specify an exception code is discontinued.· pragma options retry, io-retry, and connect-retry · Bugfixes:· Built-in listen ignored optional second argument.· Debug specification incorrectly gave preference to the global level over the source level. This is fixed, so that `--debug=40,dns=10' means level 10 for calls from `dns.c', and level 40 for all the rest.