Milter smfi_getsymval()
Fetch a sendmail macro’s value All sendmail versions
The sendmail program defines
macros for your use in rule sets (such as the
$j and
${mail_addr}
macros) and allows you to define new macros for your
own use. Milters can access
sendmail macros using this
smfi_getsymval() routine. It is used
like this:
symval= smfi_getsymval(ctx,symname);
Here, ctx is the common
context pointer that was passed to your xxfi_eom() function.
The symname is the name
of the macro whose value you seek and
symval is the value (a
string) returned by the function call. The
symname is a string
that specifies the name of a single macro. The
$ prefix must
be omitted. Multicharacter macro names must be
enclosed in curly braces. Single-character names may
optionally be surrounded in curly braces:
"${j}" ← Won't work, has leading $ character
"{j}" ← Good
"j" ← Also good
"{mail_host}" ← Good multicharacter name
"{mail_host} {mail_addr}" ← Won't work, multiple macro namesThe returned symval is a
pointer to a string that will be NULL if the macro name
is undefined, if one is not sent to the Milter, if
there was a network error, or if
symname is NULL. If the macro’s
name is found, symval
will point into the Milter library context’s memory.
Note that this value is volatile, so you should copy
it if you need to preserve it.
In general, an envelope-specific macro is valid only for the current envelope, and a connection-specific macro is valid only for the current connection. That is, sendmail macros ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access