Mmm, an old thread, but I just had an idea.
#define EMAIL_SET "a-zA-Z0-9!#$%&'*+=/?^_`{|}~.-"
#define EMAIL_EXPR "%[" EMAIL_SET "]@%[" EMAIL_SET "]"
bool valid_email(const char *em)
{
char mbox[MAX_INPUT_LENGTH];
char domain[MAX_INPUT_LENGTH];
if (sscanf(em, EMAIL_EXPR, mbox, domain) != 2)
return (FALSE);
else if (!str_cmp(mbox, "root") || !str_cmp(mbox, "abuse") ||
!str_cmp(mbox, "postoffice") ||
!str_cmp(mbox, "postmaster") ||
!str_cmp(mbox, "webmaster"))
return (FALSE);
else if (!str_cmp(domain, "127.0.0.1") ||
!str_cmp(domain, "localhost"))
return (FALSE);
return (TRUE);
}
That's much more compact than what I had previously written, but it works
just as well.
--
Daniel A. Koepke (dak), dkoepke@circlemud.org
Caveat emptor: I say what I mean and mean what I say. Listen well.
Caveat venditor: Say what you mean, mean what you say. Say it well.
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/05/01 PST