Method code for $smtp.parse_recipient()

[Turn on line numbering]
arg user;
var x, host;

if (mail_aliases.contains(user))
    return mail_aliases[user];
if (user[1] == "<" && user[user.length()] == ">")
    user = user.subrange(2, user.length() - 2);
if ("@" in user) {
    [user, host] = explode(user, "@");
    if (!(host in $smtp.get_hosts_setting()))
        throw(~perm, "Unwilling to accept or relay mail for: " + host, 571);
}
user = user.trim();
user = strsed(user, "^list-", "*");
user = strsed(user, "^user-", "~");
return (| $smtp.lookup_alias(user) |) || (> $mail_lib.match_mail_recipient(user) <);

// Created 13-Oct-1996 as a part of ColdCore, see: @help Credit

Tlon