aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2007-05-06 08:28:34 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2007-05-06 08:28:34 +0000
commit362926c7d0b90773f5dd9f60772063fb78e2c087 (patch)
treed7ae444b4837c625ccb5f883c5a64327622011be /doc
parent5d929766e74bf61a5ee324b1ab616d34db2fbee4 (diff)
downloadmailfromd-362926c7d0b90773f5dd9f60772063fb78e2c087.tar.gz
mailfromd-362926c7d0b90773f5dd9f60772063fb78e2c087.tar.bz2
update
git-svn-id: file:///svnroot/mailfromd/trunk@1413 7a8a7f39-df28-0410-adc6-e0d955640f24
Diffstat (limited to 'doc')
-rw-r--r--doc/gacopyz.texi13
-rw-r--r--doc/mailfromd.texi231
-rw-r--r--doc/mtasim.texi12
3 files changed, 126 insertions, 130 deletions
diff --git a/doc/gacopyz.texi b/doc/gacopyz.texi
index eadb788f..5eecc6f2 100644
--- a/doc/gacopyz.texi
+++ b/doc/gacopyz.texi
@@ -21,10 +21,10 @@ Kazimierz GrzeĊ›kowiak
@c There is no easy way to represent Polish characters in Texinfo,
@c hence this funny notation:
@quotation
-Gacopyz, panie, to m@'owi@,{a} ze to mysa... Ze to tako
+@i{Gacopyz, panie, to m@'owi@,{a} ze to mysa... Ze to tako
mysa co @'swieck@,{e} w ko@'sciele zjad@l{}a i wniebowst@,{a}pienia
dost@,{a}pi@l{}a. A to nie je mysa, ino gacopyz! To nadprzyrodz@l{}une,
-to g@l{}ow@,{a} na d@'o@l{} @'spi!
+to g@l{}ow@,{a} na d@'o@l{} @'spi!}
Kazimierz Grze@'skowiak
@end quotation
@@ -32,14 +32,15 @@ Kazimierz Grze@'skowiak
@samp{Gacopyz} is the client library implementing Milter protocol.
It differs considerably from the Sendmail implementation and offers a
-new and more flexible API. The old API is supported for compatibility
-with @command{libmilter}.
+new and more flexible @acronym{API}. The old @acronym{API} is
+supported for compatibility with @command{libmilter}.
The library name comes from the song @samp{Rozprawa o robokach} by
@uref{http://gray.gnu.org.ua/grzeskowiak.html, Kazimierz Grzeskowiak}.
The phrase @samp{A to nie je mysa, ino gacopyz} exactly describes what
the library is: @samp{That is no libmilter, but gacopyz}.
- Future versions of the documentation will include the detailed API
-description.
+ Future versions of this documentation will include the detailed
+description of the library.
+
diff --git a/doc/mailfromd.texi b/doc/mailfromd.texi
index 3a8bf74a..fbbf7a58 100644
--- a/doc/mailfromd.texi
+++ b/doc/mailfromd.texi
@@ -437,7 +437,7 @@ the expiration timeout in your cache database.
@item When verifying the remote address, no attempt to actually
deliver the message is made. If @acronym{MTA} accepts the address,
-@command{mailfromd} assumes it is OK. However in reality, mail for a
+@command{mailfromd} assumes it is @sc{ok}. However in reality, mail for a
remote address can bounce @emph{after} the nearest @acronym{MTA} accepts the
recipient address.
@@ -651,7 +651,7 @@ option port} statement in the filter script (@pxref{pragma port}).
@dfn{Expiration interval} defines the period of time during which a
record in the @command{mailfromd} database is considered valid. It is
described in more detail in @ref{Databases}. The default value is
-86400 seconds, i.e. 24 hours. It is OK for most sites. If, however,
+86400 seconds, i.e. 24 hours. It is @sc{ok} for most sites. If, however,
you wish to change it, use @var{DEFAULT_EXPIRE_INTERVAL} environment
variable.
@@ -5969,7 +5969,7 @@ in the form of a standard @acronym{URL}:
@noindent
The @var{proto} part specifies the @dfn{connection protocol}. It
should be @samp{tcp} for the @acronym{TCP} connection and @samp{file}
-or @samp{socket} for the connection via UNIX socket. In the latter
+or @samp{socket} for the connection via @acronym{UNIX} socket. In the latter
case the @var{proto} part can be omitted. When using @acronym{TCP}
connection, the @var{path} part gives the remote host name or @acronym{IP}
address and the optional @var{port} specifies the port number or
@@ -5983,7 +5983,7 @@ tcp://remote.filter.net:3314
# @file{/etc/services}):}
tcp://remote.filter.net:spamd
-# @r{Connect via local UNIX socket (equivalent forms):}
+# @r{Connect via a local @acronym{UNIX} socket (equivalent forms):}
/var/run/filter.sock
file:///var/run/filter.sock
socket:///var/run/filter.sock
@@ -6116,11 +6116,12 @@ done
@cindex greylist_seconds_left, global variable
Returns true if the @var{key} is found in the greylist database
(controlled by @code{#pragma database greylist} pragma, @pxref{database}). The argument @var{interval} gives the greylisting
-interval in seconds. The function sets internal variable
-@code{greylist_seconds_left} to the number of seconds left to the end
-of greylisting period. @xref{Greylisting}, for the detailed explanation.
+interval in seconds. The function stores the number of seconds left to the end
+of greylisting period in the internal variable
+@code{greylist_seconds_left}. @xref{Greylisting}, for the detailed
+explanation.
- @code{greylist} function can signal @code{dbfailure} exception.
+ The function @code{greylist} can signal @code{dbfailure} exception.
@end deftypefn
@deftypefn {Built-in Function} boolean listens (string @var{host}, [number @var{port}])
@@ -6138,7 +6139,7 @@ discussion.
@end deftypefn
@deftypefn {Built-in Function} boolean validuser (string @var{name})
- Returns @code{true} if the authenticity of user @var{name} is
+ Returns @code{true} if authenticity of the user @var{name} is
confirmed using mailutils authentication system. @xref{Local Account
Verification}, for more details.
@end deftypefn
@@ -6147,11 +6148,11 @@ Verification}, for more details.
@deftypefn {Library Function} boolean valid_domain (string @var{domain})
Returns @code{true} if the domain name @var{domain} has a
-corresponding A record or if it has any @samp{MX} records, that is if it can
-be possible to send mail to it.
+corresponding A record or if it has any @samp{MX} records, i.e. if it
+is possible to send mail to it.
@flindex valid_domain.mf
-To use this function, require include @file{valid_domain.mf} module
+To use this function, require @file{valid_domain.mf} module
(@pxref{Modules}):
@smallexample
@@ -6208,13 +6209,13 @@ client @acronym{IP} address.
@node Mail Sending Functions
@subsubsection Mail Sending Functions
- The mail sending functions are new interfaces, introduced with
+ The mail sending functions are new interfaces, introduced in
version 3.1.
The underlying mechanism for sending mail, called @dfn{mailer}, is
specified by @option{--mailer} command line option. This global
setting can be overridden using the last optional argument to a
-particular function. In both cases, the mailer is specified in the
+particular function. In any case, the mailer is specified in the
form of a @acronym{URL}.
@cindex @acronym{URL}, mailer
@@ -6222,7 +6223,7 @@ form of a @acronym{URL}.
@anchor{mailer url}
@dfn{Mailer @acronym{URL}} begins with a protocol specification.
Two protocol specifications are currently supported: @samp{sendmail}
-and @samp{smtp}. The former means to use a
+and @samp{smtp}. The former means to use a
@command{sendmail}-compatible program to send mails. Such a program
must be able to read mail from its standard input and must support the
following options:
@@ -6239,7 +6240,8 @@ Get recipient addresses from the message.
@end table
These conditions are met by most existing @acronym{MTA} programs, such
-as @command{exim} or @command{postfix}.
+as @command{exim} or @command{postfix} (to say nothing of
+@command{sendmail} itself).
Following the protocol specification is @dfn{mailer location}, which
is is separated from it by a colon. For @samp{sendmail} protocol,
@@ -6251,15 +6253,17 @@ sendmail:/usr/sbin/sendmail
@end smallexample
A special form of a sendmail @acronym{URL}, consisting of protocol
-specification only -- @samp{sendmail:} -- is also allowed. It means
+specification only (@samp{sendmail:}) is also allowed. It means
``use the sendmail binary from the @code{_PATH_SENDMAIL}
macro in your @file{/usr/include/paths.h} file''. This is the default
mailer.
The @samp{smtp} protocol means to use an @acronym{SMTP} server directly.
In this case the mailer location consists of two slashes,
-the @acronym{IP} address or host name of the @acronym{SMTP} server, and,
-optionally, the port number. For example:
+followed by the @acronym{IP} address or host name of the @acronym{SMTP}
+server, and, optionally, the port number. If the port number is
+present, it is separated from the rest of @acronym{URL} by a colon.
+For example:
@smallexample
@group
@@ -6271,10 +6275,11 @@ smtp://remote.server.net:24
@deftypefn {Built-in Function} void send_mail (string @var{msg}, @
string @var{to} [, string @var{from}, string @var{mailer}])
- Sends message @var{msg} to the email address @var{to}. @var{msg}
-must be a valid @acronym{RFC} 2822 message, consisting of headers and body.
-The @var{to} argument can contain several email addresses. In this
-case the message will be sent to each recipient specified in @var{to}.
+ Sends message @var{msg} to the email address @var{to}. The value of
+@var{msg} must be a valid @acronym{RFC} 2822 message, consisting of
+headers and body. The @var{to} argument can contain several email
+addresses. In this case the message will be sent to each recipient
+specified in @var{to}.
Optional arguments are:
@@ -6404,8 +6409,8 @@ zone.
@deftypefn {Library Function} boolean match_dnsbl (string @var{address}, @
string @var{zone}, string @var{range})
-This function looks up the @var{address} in the @acronym{DNS}
-blacklist zone @var{zone} and checks if the return matches
+This function looks up @var{address} in the @acronym{DNS}
+blacklist zone @var{zone} and checks if the return falls into the
given @var{range} of @acronym{IP} addresses.
It is intended as a replacement for the Sendmail macros @samp{dnsbl} and
@@ -6442,7 +6447,7 @@ returns @code{false}.
This function checks if the @acronym{IP} address, corresponding to the domain
part of @var{email} is listed in the @acronym{RHS DNS} blacklist zone
-@var{zone}, and if so, whether its record matches the given range of
+@var{zone}, and if so, whether its record falls into the given range of
@acronym{IP} addresses @var{range}.
It is intended as a replacement for the Sendmail macro @samp{rhsbl}
@@ -6683,9 +6688,9 @@ additional information in global variables:
explanation string as returned by the publishing domain, prefixed with
the value of the global variable @code{spf_explanation_prefix}.
- For example, if @code{spf_explanation_prefix} contains @samp{%@{o@}
-explains: }, and the publishing domain @samp{example.com} returns the
-explanation string @samp{Please see
+ For example, if @code{spf_explanation_prefix} contains @samp{The
+domain %@{o@} explains: }, and the publishing domain
+@samp{example.com} returns the explanation string @samp{Please see
http://www.example.com/mailpolicy.html}, than the value of
@code{spf_explanation} will be:
@@ -6758,7 +6763,7 @@ Normally it is the domain portion of the @code{MAIL FROM} or
The @code{HELO} identity.
@end table
- Before returning the @code{check_host} function stores
+ Before returning, the @code{check_host} function stores
additional information in the same global variables, as
@code{spf_check_host}. @xref{spf-globals, the list}, for the
description of these. In addition, it sets the variable
@@ -6777,9 +6782,9 @@ representation.
explanation string as returned by the publishing domain, prefixed with
the value of the global variable @code{spf_explanation_prefix}.
- For example, if @code{spf_explanation_prefix} contains @samp{%@{o@}
-explains: }, and the publishing domain @samp{example.com} returns the
-explanation string @samp{Please see
+ For example, if @code{spf_explanation_prefix} contains @samp{The
+domain %@{o@} explains: }, and the publishing domain
+@samp{example.com} returns the explanation string @samp{Please see
http://www.example.com/mailpolicy.html}, than the value of
@code{spf_explanation} will be:
@@ -6837,17 +6842,17 @@ the decision based on the cached data, or to @samp{0} otherwise.
@subsubsection Debugging Functions
These functions allow to enable debugging and tracing for a certain
-pieces of code.
+piece of code.
@deftypefn {Built-in Function} void debug (string @var{spec})
-Enable debugging. @var{spec} sets the debugging level the format,
-described in @ref{debugging level specification}.
+Enable debugging. The value of @var{spec} sets the debugging level.
+@xref{debugging level specification}, for the description of its format.
@end deftypefn
@deftypefn {Built-in Function} number debug_level ([string @var{srcname}])
-This function returns the current debugging level for the source
+This function returns the debugging level currently in effect for the source
module @var{srcname}, or the global debugging level, if called without
-argument.
+arguments.
For example, if the program was started with
@option{--debug=20,@/engine=8} option, then:
@@ -6877,7 +6882,7 @@ debug_spec("engine,db") @result{} "db=30,engine=8"
@end smallexample
@noindent
-When called without argument, @code{debug_spec} will return full
+When called without arguments, @code{debug_spec} returns full
debugging level specification, as shown in the example below:
@smallexample
@@ -6914,8 +6919,8 @@ simultaneously:
@smallexample
@group
- /* @r{Save debugging specifications for the sources we are
- * interested in}
+ /* @r{Save debugging specifications for the sources we are}
+ * @r{interested in:}
*/
set dspec debug_spec("dns,dnsbase,db")
/* @r{Set new debugging spec} */
@@ -6938,7 +6943,7 @@ Disable tracing for given modules.
@end deftypefn
This pair of functions is also designed to be used together in
-bracket-like fashion. They are useful for debugging
+a bracket-like fashion. They are useful for debugging
@command{mailfromd}, but are not advised to use otherwise, since
tracing slows down the execution considerably.
@@ -6953,7 +6958,7 @@ for the detailed description of stack traces.
manageable by defining new functions.
@cindex function definition, syntax of
- Definitions of functions can appear anywhere between the handler
+ The function definitions can appear anywhere between the handler
declarations in a filter program. The only requirement is that the
function definition occurs before the place where the function is
invoked.
@@ -7026,8 +7031,8 @@ done
The @code{returns} part in the function declaration is optional. A
declaration lacking it defines a @dfn{procedure}, or @dfn{void
function}, i.e. a function that is not supposed to return any value.
-Such functions cannot be used in expressions, instead they should be
-used in statement context (@pxref{Statements}). The following example
+Such functions cannot be used in expressions, instead they are
+used as statements (@pxref{Statements}). The following example
shows a function that emits a customized temporary failure notice:
@smallexample
@@ -7097,7 +7102,7 @@ and @samp{n} for numeric. The same holds true for @var{rettype} as
well.
@cindex positional parameters, in functions
- The variables declared this way are called @dfn{positional
+ The parameters declared this way are called @dfn{positional
parameters}. The function can access its actual arguments using the notation
@code{$@var{n}}, where @var{n} is the ordinal number of the
argument@footnote{Well, to tell you the truth, you can access named
@@ -7135,7 +7140,8 @@ function, do @code{#require revip}.
@enumerate 1
@cindex revip, definition of
-@item revip
+@item @code{revip}@*
+
The function @code{revip} (@pxref{revip}) is implemented as follows:
@smallexample
@@ -7163,7 +7169,8 @@ done
@end smallexample
@cindex strip_domain_part, definition of
-@item strip_domain_part
+@item @code{strip_domain_part}@*
+
This function returns at most @var{n} last components of the domain
name @var{domain} (@pxref{strip_domain_part}).
@@ -7186,7 +7193,7 @@ done
@end smallexample
@cindex valid_domain, definition
-@item valid_domain
+@item @code{valid_domain}@*
@xref{valid_domain}, for the description of this function. Its
definition follows:
@@ -7203,7 +7210,8 @@ done
@end smallexample
@cindex match_dnsbl, definition
-@item match_dnsbl
+@item @code{match_dnsbl}@*
+
The function @code{match_dnsbl} (@pxref{match_dnsbl}) is defined as
follows:
@@ -7302,7 +7310,6 @@ precedence rules and work as you would expect them to.
@subsection Relational Expressions
Relational expressions are:
-
@cindex @code{<} (left angle bracket), @code{<} operator
@cindex left angle bracket (@code{<}), @code{<} operator
@cindex @code{<} (left angle bracket), @code{<=} operator
@@ -7375,7 +7382,7 @@ $f matches '.*@@GNU\.ORG\.UA' @result{} @code{true}
@end smallexample
The @code{fnmatches} operator compares its left-hand operand with a
-globbing pattern (@cite{glob(7)}) given as its right-hand side
+globbing pattern (see @cite{glob(7)}) given as its right-hand side
operand. For example:
@smallexample
@@ -7396,9 +7403,9 @@ The expression:
@end smallexample
@noindent
-is evaluated as follows: first, the expression @var{x} is analyzed, if
+is evaluated as follows: first, the expression @var{x} is analyzed and, if
it is an email address, its domain part is selected. If it is not,
-the value is used as is. Then the list of @samp{MX}s for this domain is
+its value is used verbatim. Then the list of @samp{MX}s for this domain is
looked up. Each of @samp{MX} names is then compared with the regular
expression @var{y}. If any of the names matches, the expression
returns true. Otherwise, its result is false.
@@ -7517,9 +7524,9 @@ condition:
if not %x < 2 and %y = 3
@end smallexample
-It is understood as ``if x is not lower than 2 and y equals 3'',
+It is understood as ``if @code{x} is not less than 2 and @code{y} equals 3'',
whereas with the usual precedence for @samp{not} it would have meant
-``if negated x is lower than 2 and y equals 3''.}
+``if negated @code{x} is less than 2 and @code{y} equals 3''.}
The following table lists all operators in order of decreasing precedence:
@@ -7600,13 +7607,13 @@ desired type: to cast an expression to string, concatenate an empty
string to it, e.g.:
@smallexample
- %var ""
+ "" %var
@end smallexample
Similarly, to cast an expression to numeric, add zero to it:
@smallexample
- %var + 0
+ 0 + %var
@end smallexample
@node Statements
@@ -7774,8 +7781,8 @@ done
@node Pass
@subsection The @code{pass} statement
@kwindex pass
- The @code{pass} statement has no effect. It should be used when
-no statement is needed but the language syntax requires one:
+ The @code{pass} statement has no effect. It is used in places
+where no statement is needed, but the language syntax requires one:
@smallexample
@group
@@ -7828,9 +7835,9 @@ branches and @dfn{switch} statements.
@end smallexample
@noindent
-The @var{condition} is an expression that governs the control flow
+Here, @var{condition} is an expression that governs control flow
within the statement. Both @var{then-body} and @var{else-body} are
-lists of @command{mailfromd} statements. If the @var{condition} is
+lists of @command{mailfromd} statements. If @var{condition} is
true, @var{then-body} is executed, if it is false, @var{else-body} is
executed. The @samp{else} part of the statement is optional. The
condition is considered false if it evaluates to zero, otherwise it is
@@ -7850,7 +7857,7 @@ fi
This will accept the message if the value of the @command{Sendmail}
macro @code{$f} is an empty string, and reject it otherwise. Both
@var{then-body} and @var{else-body} can be compound statements
-including other @code{if} statements. The nesting level of
+including other @code{if} statements. Nesting level of
conditional statements is not limited.
To facilitate writing complex conditional statements, the @code{elif}
@@ -7901,16 +7908,18 @@ eventual @samp{case} branches.
This statement is executed as follows: the @var{condition}
expression is evaluated and if its value equals @var{x1} or @var{x2}
-(or any other @var{x} from the first @code{case}), then the
-@var{stmt1} is executed. Otherwise, if the @var{condition} evaluates
+(or any other @var{x} from the first @code{case}), then
+@var{stmt1} is executed. Otherwise, if @var{condition} evaluates
to @var{y1} or @var{y2} (or any other @var{y} from the second
-@code{case}), then the @var{stmt2} is executed. Other @code{case}
-branches are tried in turn, if none of them matches, the @var{stmt} is
-executed.
+@code{case}), then @var{stmt2} is executed. Other @code{case}
+branches are tried in turn. If none of them matches, @var{stmt}
+(called the @dfn{default branch}) is executed.
There can be as many @code{case} branches as you wish. The
@code{default} branch is optional. There can be at most one
-@code{default} branch. Consider the following example:
+@code{default} branch.
+
+ An example of @code{switch} statement follows:
@smallexample
@group
@@ -7933,8 +7942,8 @@ header to it. If @code{x} equals 2 or 4 or 6, this code will add
@samp{X-Branch: 2} header to the message and will continue processing
it. Otherwise, it will reject the message.
- The @var{condition} in the @code{switch} statement can be both
-numeric and string expression. The type of the condition governs the
+ The controlling condition of a @code{switch} statement may evaluate
+to numeric or string type. The type of the condition governs the
type of comparisons used in @code{case} branches: for numeric types,
numeric equality will be used, whereas for string types, string
equality is used.
@@ -8131,7 +8140,7 @@ let's consider the execution of the following code fragment:
@smallexample
@group
- if hasmx domainpart $f
+ if primitive_hasmx domainpart $f
accept
fi
@end group
@@ -8143,7 +8152,7 @@ domain name given as its argument has any @samp{MX} records. It should
return a boolean value. However, when querying the Domain Name
System, it may fail to get a definite result. For example, the @acronym{DNS}
server can be down or temporary unavailable. In other words,
-@code{hasmx} can be in a situation when, instead of returning
+@code{primitive_hasmx} can be in a situation when, instead of returning
@samp{yes} or @samp{no}, it has to return @samp{don't know}. That is
exactly then when it signals an @dfn{exception}.
@@ -8287,8 +8296,8 @@ done
@noindent
where @var{exception-list} is the list of exception types, separated
-by the word @code{or}. A special form @samp{*} is allowed as well.
-It means catch all exceptions. The @var{handler-body} is the list of
+by the word @code{or}. A special form @samp{*}, which stands for
+all exceptions, is allowed as well. The @var{handler-body} is the list of
statements comprising the handler body. For example, the code below
installs a handler for exceptions 2 (@samp{failure}) and 3
(@samp{temp_failure}):
@@ -8307,9 +8316,9 @@ done
@cindex @file{status.mfh}, usage
However, using numeric exception codes is not convenient and is not
in fact recommended. We recommend to use exception symbolic names
-instead. These are declared in header file @file{status.mfh}, which
+instead. These are declared in the header file @file{status.mfh}, which
should be included in your startup script. Using this approach, the
-above code snipped will look like:
+above code snippet will look like:
@smallexample
@group
@@ -8345,13 +8354,13 @@ they had when it has been entered.
arguments, which can be referenced in @var{handler-body} as @code{$1}
and @code{$2}. The first argument gives the numeric code of the
exception that has occurred. The second argument is a textual string
-containing human-readable description of the exception. A
+containing a human-readable description of the exception. A
@code{catch} defined within a function must return from
it by executing @code{return} statement. If it does not do that
explicitly, the default value of 1 is returned. A @code{catch}
defined within a milter handler must end execution with any of the
following actions: @code{accept}, @code{continue}, @code{discard},
-@code{reject}, @code{tempfail}. By default, @code{continue} will be
+@code{reject}, @code{tempfail}. By default, @code{continue} is
used.
The following example shows an @code{envfrom} handler that catches
@@ -8384,7 +8393,7 @@ done
@cindex @code{hasmx}, definition of the function
The following example defines the function @code{hasmx} that
returns true if the domain part of its argument has any @samp{MX} records, and
-false if it does not or an exception occurs @footnote{This function is
+false if it does not or if an exception occurs @footnote{This function is
part of the @code{mailfromd} library, @xref{hasmx}.}.
@smallexample
@@ -8467,7 +8476,6 @@ for probe messages (@pxref{Predefined variables}).
For example, a simplest way to implement standard polling would be:
@smallexample
-@group
prog envfrom
do
if stdpoll($1, %ehlo_domain, %mailfrom_address) == 0
@@ -8476,7 +8484,6 @@ do
reject 550 5.1.0 "Sender validity not confirmed"
fi
done
-@end group
@end smallexample
However, this does not take into account exceptions that
@@ -8484,7 +8491,6 @@ done
@code{catch}, for example thus:
@smallexample
-@group
#include <status.mfh>
prog envfrom
@@ -8506,7 +8512,6 @@ do
reject 550 5.1.0 "Sender validity not confirmed"
fi
done
-@end group
@end smallexample
If polls are used often, one can define a wrapper function, and use
@@ -8735,7 +8740,6 @@ Each section is prefaced with a comment explaining its function.
The first part defines the configuration settings for this host:
@smallexample
-@group
#pragma option relay /etc/mail/sendmail.cw
#pragma option relay /etc/mail/relay-domains
#pragma option timeout 33
@@ -8746,7 +8750,6 @@ Each section is prefaced with a comment explaining its function.
set mailfrom_address "<>"
set ehlo_domain "gnu.org.ua"
-@end group
@end smallexample
The second part includes the necessary header files and loads
@@ -8759,12 +8762,11 @@ required source modules:
@end group
@end smallexample
- Next we define a @code{envfrom} handler. In the first two rules, it
+ Next we define @code{envfrom} handler. In the first two rules, it
accepts all mails coming from the null address and from the machines
-in which we relay:
+which we relay:
@smallexample
-@group
prog envfrom
do
if $f = ""
@@ -8773,7 +8775,6 @@ do
accept
elif hostname $client_addr = $client_addr
reject 550 5.7.7 "IP address does not resolve"
-@end group
@end smallexample
Next rule rejects all messages coming from hosts with dynamic @acronym{IP}
@@ -8789,11 +8790,10 @@ ppp|dhcp|dynamic|[-.]cpe[-.]).*"
@end group
@end smallexample
- Messages coming from the machines whose host name contains
+ Messages coming from the machines whose host names contain
something similar to an @acronym{IP} are subject to strict checking:
@smallexample
-@group
elif hostname $client_addr matches
".*[0-9]@{1,3@}[-.][0-9]@{1,3@}[-.][0-9]@{1,3@}[-.][0-9]@{1,3@}.*"
on poll host $client_addr for $f do
@@ -8804,7 +8804,6 @@ something similar to an @acronym{IP} are subject to strict checking:
when temp_failure:
tempfail
done
-@end group
@end smallexample
If the sender domain is relayed by any of the @indicateurl{yahoo.com}
@@ -8823,7 +8822,6 @@ will greylist this message in @code{envrcpt} handler:
it is verified by the standard procedure:
@smallexample
-@group
else
on poll $f do
when success:
@@ -8834,7 +8832,6 @@ it is verified by the standard procedure:
tempfail
done
fi
-@end group
@end smallexample
At the end of the handler we check if the sender-client pair does
@@ -8854,7 +8851,6 @@ is to greylist messages from some domains that could not be checked
otherwise:
@smallexample
-@group
prog envrcpt
do
set gltime 300
@@ -8873,7 +8869,6 @@ do
fi
fi
done
-@end group
@end smallexample
@node Reserved Words
@@ -9006,7 +9001,7 @@ The meaning of each invocation part is described in the table below:
The command line options (@pxref{options}).
@item asgn
- Variable assignments. These are currently meaningful only with
+ Sendmail macro assignments. These are currently meaningful only with
the @option{--test} option (@pxref{test mode}), but this
may change in the future. Each assignment has the form:
@@ -9015,9 +9010,8 @@ may change in the future. Each assignment has the form:
@end smallexample
@noindent
-where @var{var} is the name of Sendmail macro or @command{mailfromd}
-variable (if prefixed with @samp{%}) and @var{value} is the value to
-be assigned to it.
+where @var{var} is the name of a Sendmail macro and @var{value} is the
+value to be assigned to it.
@item script
The file name of the filter script, if other than the default one.
@@ -9043,8 +9037,8 @@ be assigned to it.
Compact database (@pxref{compaction}). By default, @samp{cache}
database is compacted. To specify another database, use
@option{--format} option (@pxref{--format}). Full database name can
-be given in the command line, if it differs from the one specified in
-the script file.
+be given in the command line (see @option{--file} option below), if it
+differs from the one specified in the script file.
Use with the option @option{--all} (@pxref{--all}) to compact all databases.
@@ -9068,7 +9062,8 @@ Delete all expired entries from the database (@pxref{Database
Maintenance}). By default, @samp{cache} database is assumed. To
specify another database, use @option{--format} option
(@pxref{--format}). Full database name can be given in the command
-line, if it differs from the one specified in the script file.
+line (see @option{--file} option below), if it differs from the one
+specified in the script file.
Use with the option @option{--all} (@pxref{--all}) to expire all databases.
@@ -9138,7 +9133,8 @@ advised to use instead.
@opsummary{foreground}
@item --foreground
Stay in foreground. When given this option, @command{mailfromd} will
-not disconnect itself from the controlling terminal and become daemon.
+not disconnect itself from the controlling terminal and will run in
+the foreground.
@opsummary{format}
@item -f @var{dbformat}
@@ -9170,7 +9166,7 @@ statement. @xref{include}, for the discussion of file inclusion.
@opsummary{lock-retry-count}
@item --lock-retry-count=@var{number}
-Set maximum number of attempts to acquire the lock on the database.
+Set maximum number of attempts to acquire the lock on a database.
See the description of @code{#pragma option lock-retry-count},
@ref{pragma lock-retry-count}, for more information about the database
locking.
@@ -9179,7 +9175,7 @@ locking.
@item --lock-retry-timeout=@var{interval}
Set the time span between the two locking attempts. See the
description of @code{#pragma option lock-retry-count}, @ref{pragma
-lock-retry-count}, for more information about the database locking.
+lock-retry-count}, for more information about database locking.
This option overrides the value set by @code{#pragma option
lock-retry-timeout} (@pxref{pragma lock-retry-timeout}.
@@ -9246,8 +9242,8 @@ relay}, which you are advised to use instead (@pxref{option relay}).
@item -r
@itemx --remove
Force removing local socket file, if it already exists. Unless this
-option is specified, @command{mailfromd} will refuse to startup if
-the file exists.
+option is specified, @command{mailfromd} will refuse to start if
+this file exists.
@opsummary{state-directory}
@item --state-directory=@var{dir}
@@ -9359,7 +9355,7 @@ Print a cross-reference of variables used in the filter script.
@opsummary{lint}
@item --lint
-Check script file syntax and exit. If the file is OK, return 0
+Check script file syntax and exit. If the file is @sc{ok}, return 0
to the shell, otherwise print appropriate messages to stderr and exit
with code 78 (@samp{configuration error}).
@@ -9561,14 +9557,14 @@ option: @kbd{mailfromd --group=smmsp}).
following signals: @code{SIGQUIT}, @code{SIGTERM}, @code{SIGINT}.
All three signals have the same effect: the program cancels handling any
pending requests, uninitializes the communication socket (if it is a
-UNIX socket, the program unlinks it) and exits.
+@acronym{UNIX} socket, the program unlinks it) and exits.
@cindex SIGHUP
To restart the running @command{mailfromd} instance, send it
@code{SIGHUP}. For restart to be possible, two conditions must be
-met: @command{mailfromd} must be invoked with full file name, and the
+met: @command{mailfromd} must be invoked with the full file name, and the
configuration file name must be full as well. If either of them is not
-met, @command{mailfromd} displays the similar warning message:
+met, @command{mailfromd} displays a similar warning message:
@smallexample
@group
@@ -9779,7 +9775,7 @@ confMILTER_MACROS_ENVRCPT `, f, @{client_addr@}, @{rcpt_addr@}')
wish to make it available elsewhere you will need to use the method
described in @ref{HELO Domain}
- Now if you are a @emph{really} daring person and prefer to do everything
+ Now, if you are a @emph{really} daring person and prefer to do everything
manually @emph{and} to hack your @file{sendmail.cf} file directly, you
certainly don't need any advices. Nonetheless, here's how the two
statements above @emph{could} look in this case:
@@ -9802,10 +9798,9 @@ f, @{client_addr@}
@chapter How to Report a Bug
@quotation
-Documentation is like sex: when it is good, it is very, very
-good; and when it is bad, it is better than nothing.
-
- --- Dick Brandon
+@i{Documentation is like sex: when it is good, it is very, very
+good; and when it is bad, it is better than nothing.}@*
+Dick Brandon
@end quotation
Although the author has tried to make this documentation as
diff --git a/doc/mtasim.texi b/doc/mtasim.texi
index 20d77fa6..580689c7 100644
--- a/doc/mtasim.texi
+++ b/doc/mtasim.texi
@@ -39,7 +39,7 @@ following:
@cindex readline
@cindex GNU Readline
- The first line is usual @acronym{RFC} 2821 reply. The second one is
+ The first line is an usual @acronym{RFC} 2821 reply. The second one is
a prompt, indicating that @command{mtasim} is in interactive mode and
ready for input. The prompt appears only if the package is compiled
with GNU Readline and @command{mtasim} determines that its standard
@@ -58,7 +58,7 @@ _
@noindent
where @samp{_} represents the cursor. Whatever the mode,
-@command{mtasim} waits for further input.
+@command{mtasim} will wait for further input.
@cindex @code{HELP}, @command{mtasim} statement
The input is expected to consist of valid @acronym{SMTP} commands
@@ -109,7 +109,7 @@ as @samp{rcpt to: <him@@domain>} was eaten without complaints.
@command{mailfromd}? Well, that's what we are going to explain. To
make @command{mtasim} consult any milter, use @option{--port}
(@option{-X}) command line option. This option takes a single
-argument that specifies a milter port to use. The port can be given
+argument that specifies the milter port to use. The port can be given
either in the usual Milter format (@xref{milter port specification},
for a short description), or as a full @file{sendmail.cf} style
@code{X} command, in which case it allows to set timeouts as well:
@@ -140,7 +140,7 @@ on that port, it may well be some other filter, not necessarily
connect to an existing @command{mailfromd} instance, but prefer
instead to create a new one and run your tests with it (a preferred
way, if you already have a stable filter running but wish to test a
-new script, without disturbing it), use @option{--port=auto}. This
+new script without disturbing it), use @option{--port=auto}. This
option instructs @command{mtasim} to do the following:
@enumerate 1
@@ -169,7 +169,7 @@ $ @kbd{mtasim -Xauto -- -I. -I../mflib test.rc}
@anchor{statedir mtasim option}
@mtasimopt{statedir, described}
The @file{/tmp/mtasim-j6tRLC} directory and any files within it will
-exist as long as @command{mtasim} is running and will be removed if
+exist as long as @command{mtasim} is running and will be removed when
you exit from it.@footnote{However, this is true only if the program
is exited the usual way (via @code{QUIT} or end-of-file). If it is
aborted with a signal like @code{SIGINTR}, the temporary directory is
@@ -422,7 +422,7 @@ cases.
@mtasimopt{body-chunk, summary}
@item --body-chunk=@var{number}
- Set the body chunk length (bytes) for xxfi_body calls.
+ Set the body chunk length (bytes) for @code{xxfi_body} calls.
@mtasimopt{daemon, summary}
@mtindex bs, -bd, @command{mtasim} option, summary