Prosty skrypt TSQL walidujący poprawność adresu e-mail

Sprawdzanie poprawności adresu e-mail w SQL na podstawowym poziomie jest stosunkowo łatwe. Poniżej podaję skrypt, który pomimo odrzucania specyficznych a mimo to poprawnych adresów, sprawdzi się w większości przypadków.

Przykładów jak może zostać przeprowadzona walidacja adresu email są dziesiątki. Ale co, jeśli chcę użyć prostego skryptu SQL?

U mnie sprawdza się taki skrypt:


declare @email nvarchar(max)


if @email is null or @email = ''
print 'Adres e-mail jest pusty'
else
begin
set @email = ltrim(rtrim(lower(@email)))
if (@email not like '[a-z,0-9,,-,=]%@[a-z,0-9,,-]%.[a-z][a-z]%')
or len(@email) < 5
or @email like '%@%@%'
or @email like N'%[ ;ęóąśłżźćń;]%'
or charindex('.@',@email) <> 0
or charindex('..',@email) <> 0
or charindex(',',@email) <> 0
or right(@email,1) not between 'a' and 'z'
print 'Adres e-mail jest nieprawidłowy'
else
print 'Adres e-mail jest poprawny'
end

Oczywiście jeśli skrypt przepuszcza niepoprawne adresy lub jest zbyt czuły, wzory powyższych poleceń LIKE można dowolnie zmodyfikować według potrzeb. Sądzę jednak, że mało prawdopodobne jest wychwycenie absolutnie wszystkich ludzkich pomysłów na pomyłkę przy wpisywaniu adresu jednocześnie przepuszczając wszystkie poprawne. Pracowitym podaję link do dokumentu opisującego jakie adresy są prawidłowe: RFC 2822 „Internet Message Format” (strona 15). Można się zdziwić…

Ktoś może stwierdzić, że tego typu walidacja na poziomie bazy danych nie jest podejściem prawidłowym ale w moim przypadku nie mam żadnego wpływu na kod programu zapisującego do bazy a adresy e-mail wyciągam z niej aby później zastosować wysyłanie maili z MS SQL.

 

  1. Krzysztof 2014.06.24 11:35pm

    Działać będzie lepiej jeśli zamiast or @email like ‚%[ ;ęóąśłżźćń;]%’ wstawimy or @email like N’%[ ;ęóąśłżźćń;]%’

    pozdrawiam

O mnie

Dobromir Chodkowski

Jestem informatykiem z zawodu oraz z zamiłowania, pasjonatem fotografii i szczęśliwym facetem swojej dziewczyny.

Nieraz udaje mi się znaleźć czas w napiętym grafiku dnia i wtedy dzielę się z Wami swoją wiedzą informatyczną.

O aVarii

Znajdziesz tu porady komputerowe, sztuczki oraz rozwiązania z dziedziny IT i tematów pokrewnych.

Jeśli interesuje Cie jakiś temat, skontaktuj się ze mną, a postaram się znaleźć czas, aby interesujące Cię kwestie opisać i wytłumaczyć.