SYNOPSISvarstrlst mailParseAliases(varchar aliases, varchar what
[, varchar flags])
Parameters:
aliases - A varchar string in sendmail
/etc/aliases formatwhat - A varchar field indicating what to return:
aliases" - List of entries' aliases (left side)targets" - List of entries' targets (right side)types" - List of entries' types:
"include", "fail", "pipe",
"file", "address"
flags - An optional CSV list of flags:
includes" - Parse include files (default)noincludes" - Do not parse include files
Returns:
varstrlst list of aliases, targets or types
DESCRIPTION
The mailParseAliases function returns a list of aliases, their
targets, or their types, as requested, from an
/etc/aliases-style string buffer. The lists are parallel; thus
a multi-target alias will be "denormalized" and cause that alias to
be returned multiple times, once per target (see alias "foo"
in the example).
By default (or if the "includes" flag is given),
:include: targets will be read and processed as such. If the
"noincludes" flag is given, includes will not be processed
and will be returned as type "include".
EXAMPLE<capture>
# This is a comment.
postmaster: root
"foo": bar, joeblow@domain.com, 'joe blow'
nobody: :fail:No such user
spam: /dev/null
orders: |/some/program
</capture>
<$aliasBuf = $ret>
<$aliases = (mailParseAliases($aliasBuf, "aliases" ))>
<$types = (mailParseAliases($aliasBuf, "types" ))>
<$targets = (mailParseAliases($aliasBuf, "targets" ))>
<loop $aliases $types $targets>
Entry $aliases: Type $types, target is $targets
</loop>
The output would be:
Entry postmaster: Type address, target is root
Entry foo: Type address, target is bar
Entry foo: Type address, target is joeblow@domain.com
Entry foo: Type address, target is joe blow
Entry nobody: Type fail, target is No such user
Entry spam: Type file, target is /dev/null
Entry orders: Type pipe, target is /some/program