2009/8/17 David Fetter <david@xxxxxxxxxx>: > On Mon, Aug 17, 2009 at 06:43:54AM +0200, Pavel Stehule wrote: >> Hello >> >> 2009/8/16 Andre Lopes <lopes80andre@xxxxxxxxx>: >> > Hi, >> > >> > I need a plpgsql function to validade e-mail addresses. I have google but I >> > can't find any. >> > >> > My question: Anyone have a function to validate e-mails? >> > >> > Best Regards, >> > André. >> > >> >> You don't need plpgsql. Important is only an using of regular expression. >> >> very strong validation should be done via plperlu >> >> CREATE OR REPLACE FUNCTION check_email(varchar) >> RETURNS boolean AS $$ >> use strict; >> use Email::Valid; >> my $address = $_[0]; >> my $checks = { >> -address => $address, >> -mxcheck => 1, >> -tldcheck => 1, >> -rfc822 => 1, >> }; >> if (defined Email::Valid->address( %$checks )) { >> return 'true' >> } >> elog(WARNING, "address failed $Email::Valid::Details check."); >> return 'false'; >> $$ LANGUAGE plperlu IMMUTABLE STRICT; > > If the network interface can ever be down, this function is not in > fact immutable, as it will fail on data that it passed before. This is your code, If I remember well :). I am not sure, if immutable is incorrect flag. Maybe STABLE is better. This check should be used very carefully. But it's really strong, much more exact than only regular expression. Pavel > > Cheers, > David. > -- > David Fetter <david@xxxxxxxxxx> http://fetter.org/ > Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter > Skype: davidfetter XMPP: david.fetter@xxxxxxxxx > > Remember to vote! > Consider donating to Postgres: http://www.postgresql.org/about/donate > -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general