Next: Controlling Number of Recipients, Previous: HELO Domain, Up: Tutorial [Contents][Index]
In previous section we have used a global variable to hold certain
information and share it between handlers. In the majority of cases,
such information is session specific, and becomes invalid if the
remote party issues the SMTP RSET
command. Therefore,
mailfromd
clears all global variables when it receives a
Milter ‘abort’ request, which is normally generated by this
command.
However, you may need some variables that retain their values
even across SMTP session resets. In mailfromd
terminology
such variables are called precious. Precious variables are
declared by prefixing their declaration with the keyword
precious
. Consider, for example, this snippet of code:
precious number rcpt_counter prog envrcpt do set rcpt_counter rcpt_counter + 1 done
Here, the variable ‘rcpt_counter’ is declared as precious and
its value is incremented each time the ‘envrcpt’ handler is
called. This way, ‘rcpt_counter’ will keep the total number of
SMTP RCPT
commands issued during the session, no matter how
many times it was restarted using the RSET
command.