Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 готовая функция, проверяющая емайл адрес?  [new]
Ora_ngutang
Guest
т.е. отсеиающая адреса типа: 111@222@.com
21 апр 08, 14:49    [5574535]     Ответить | Цитировать Сообщить модератору
 Re: готовая функция, проверяющая емайл адрес?  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

Ora_ngutang wrote:

> т.е. отсеиающая адреса типа: 111@222@.com

https://www.sql.ru/forum/actualthread.aspx?tid=190285

Posted via ActualForum NNTP Server 1.4

21 апр 08, 14:58    [5574595]     Ответить | Цитировать Сообщить модератору
 Re: готовая функция, проверяющая емайл адрес?  [new]
Igor MV
Member

Откуда:
Сообщений: 106
function is_validEmail (pv_email varchar2) return boolean
   as
     ln_len  number;
  begin
     ln_len := nvl(length(regexp_replace(pv_email,'[[:alnum:]]+(\w*[[:alnum:]]+)*@[[:alpha:]]+\w*(\.[[:alpha:]]+)+','w')),10);
     if ln_len<>1 then
        return false;
     end if;
     return true;
  end is_validEmail;
21 апр 08, 15:14    [5574743]     Ответить | Цитировать Сообщить модератору
 Re: готовая функция, проверяющая емайл адрес?  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

2Igor MV: Проверь на своем адресе из профиля;) И еще такой: "Igor MV <a@b.c>".

Posted via ActualForum NNTP Server 1.4

21 апр 08, 15:25    [5574838]     Ответить | Цитировать Сообщить модератору
 Re: готовая функция, проверяющая емайл адрес?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
я бы посмотрел на regexp_like ~
with t as (select 'my@mail.ru' s from dual)
select s from t
 where regexp_like(s,'^[^@]+@[^@]+$');
а вот наполнение выражения - имхо - можно и своё какое-нибудь накрутить..
допустим - строго ограничить корневой домен(ы)
21 апр 08, 15:28    [5574864]     Ответить | Цитировать Сообщить модератору
 Re: готовая функция, проверяющая емайл адрес?  [new]
йфяцыч
Member

Откуда: UA-RU(62-99)-?
Сообщений: 638
DECLARE
repl Utl_Smtp.reply;
conn Utl_Smtp.connection;
BEGIN
	 conn := Utl_Smtp.open_connection('1.0.1.0');
	 repl := Utl_Smtp.vrfy(conn, '111@222@.com');
	 DBMS_OUTPUT.PUT_LINE(repl.code);
	 DBMS_OUTPUT.PUT_LINE(repl.text);
	 Utl_Smtp.quit(conn);
END;

501
5.5.4 Invalid Address


4.1.1.6 VERIFY (VRFY)


This command asks the receiver to confirm that the argument
identifies a user or mailbox. If it is a user name, information is
returned as specified in section 3.5.

This command has no effect on the reverse-path buffer, the forward-
path buffer, or the mail data buffer.

Syntax:
"VRFY" SP String CRLF
21 апр 08, 15:57    [5575091]     Ответить | Цитировать Сообщить модератору
 Re: готовая функция, проверяющая емайл адрес?  [new]
Igor MV
Member

Откуда:
Сообщений: 106
Denis Popov

2Igor MV: Проверь на своем адресе из профиля;) И еще такой: "Igor MV <a@b.c>".
Posted via ActualForum NNTP Server 1.4


точно, адрес из профиля обрабатывается, чуть подправил
select
  regexp_replace('miv.w.0@gmail.com','[[:alnum:]]+(\w*\.?[[:alnum:]]+)*@[[:alpha:]]+\w*(\.[[:alpha:]]+)+','w')
	  from dual;
а вот адрес внутри <> в моей программе исключен
хотя и интересно
на вскидку надо еще один regexp_replace повесить
21 апр 08, 15:57    [5575096]     Ответить | Цитировать Сообщить модератору
 Re: готовая функция, проверяющая емайл адрес?  [new]
SvPV
Guest
Дилетанством занимаетесь
Регулярное выражение полностью соответствующее RFC822 уже давно есть, и имеет длину почти 7КБ.
См. Jeffrey Friedl "Mastering Regular Expressions"
22 апр 08, 05:06    [5577438]     Ответить | Цитировать Сообщить модератору
 Re: готовая функция, проверяющая емайл адрес?  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

SvPV wrote:

> Дилетанством занимаетесь
> Регулярное выражение полностью соответствующее RFC822 уже давно есть, и
> имеет длину почти 7КБ.

Сходи по ссылке из второго сообщения этой темы.

Posted via ActualForum NNTP Server 1.4

22 апр 08, 09:32    [5577699]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить