SQL Server’da Mail Adresi Kontrol Eden Fonksiyon
Herkese merhaba,
Bu yazıda SQL Server’da mail adresi kontrol eden fonksiyon hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda mail adresini kontrol etmek isteyebilirsiniz.
Aşağıdaki fonksiyon yardımıyla bu işlemi rahatlıkla yapabilirsiniz.
--Fonksiyonu oluşturmak CREATE FUNCTION EmailKontrolEdenFonksiyon ( @MailAdresi VARCHAR(500) ) RETURNS BIT AS BEGIN DECLARE @Sonuc BIT; SET @MailAdresi = LTRIM(RTRIM(@MailAdresi)); SELECT @Sonuc = CASE WHEN CHARINDEX(' ', LTRIM(RTRIM(@MailAdresi))) = 0 AND LEFT(LTRIM(@MailAdresi), 1) <> '@' AND RIGHT(RTRIM(@MailAdresi), 1) <> '.' AND LEFT(LTRIM(@MailAdresi), 1) <> '-' AND CHARINDEX('.', @MailAdresi, CHARINDEX('@', @MailAdresi)) - CHARINDEX('@', @MailAdresi) > 2 AND LEN(LTRIM(RTRIM(@MailAdresi))) - LEN(REPLACE(LTRIM(RTRIM(@MailAdresi)), '@', '')) = 1 AND CHARINDEX('.', REVERSE(LTRIM(RTRIM(@MailAdresi)))) >= 3 AND ( CHARINDEX('.@', @MailAdresi) = 0 AND CHARINDEX('..', @MailAdresi) = 0 ) AND ( CHARINDEX('-@', @MailAdresi) = 0 AND CHARINDEX('..', @MailAdresi) = 0 ) AND ( CHARINDEX('_@', @MailAdresi) = 0 AND CHARINDEX('..', @MailAdresi) = 0 ) AND ISNUMERIC(SUBSTRING(@MailAdresi, 1, 1)) = 0 AND CHARINDEX(',', @MailAdresi) = 0 AND CHARINDEX('!', @MailAdresi) = 0 AND CHARINDEX('-.', @MailAdresi) = 0 AND CHARINDEX('%', @MailAdresi) = 0 AND CHARINDEX('#', @MailAdresi) = 0 AND CHARINDEX('$', @MailAdresi) = 0 AND CHARINDEX('&', @MailAdresi) = 0 AND CHARINDEX('^', @MailAdresi) = 0 AND CHARINDEX('''', @MailAdresi) = 0 AND CHARINDEX('\', @MailAdresi) = 0 AND CHARINDEX('/', @MailAdresi) = 0 AND CHARINDEX('*', @MailAdresi) = 0 AND CHARINDEX('+', @MailAdresi) = 0 AND CHARINDEX('(', @MailAdresi) = 0 AND CHARINDEX(')', @MailAdresi) = 0 AND CHARINDEX('[', @MailAdresi) = 0 AND CHARINDEX(']', @MailAdresi) = 0 AND CHARINDEX('{', @MailAdresi) = 0 AND CHARINDEX('}', @MailAdresi) = 0 AND CHARINDEX('?', @MailAdresi) = 0 AND CHARINDEX('<', @MailAdresi) = 0 AND CHARINDEX('>', @MailAdresi) = 0 AND CHARINDEX('=', @MailAdresi) = 0 AND CHARINDEX('~', @MailAdresi) = 0 AND CHARINDEX('`', @MailAdresi) = 0 AND CHARINDEX('.', SUBSTRING(@MailAdresi, CHARINDEX('@', @MailAdresi) + 1, 2)) = 0 AND CHARINDEX('.', SUBSTRING(@MailAdresi, CHARINDEX('@', @MailAdresi) - 1, 2)) = 0 AND LEN(SUBSTRING(@MailAdresi, 0, CHARINDEX('@', @MailAdresi))) > 1 AND CHARINDEX('.', REVERSE(@MailAdresi)) > 2 AND CHARINDEX('.', REVERSE(@MailAdresi)) < 5 THEN 1 ELSE 0 END; RETURN @Sonuc; END; GO --Fonksiyonu kullanmak SELECT dbo.EmailKontrolEdenFonksiyon('deneme@deneme.com');
Fonksiyonu oluşturup çalıştırdığınızda aşağıdaki gibi bir sonuç göreceksiniz.
Görüldüğü üzere mail adresi kontrol edilmiş oldu. 1 geçerli bir mail adresi olduğunu 0 ise geçerli olmayan bir mail adresi olduğunu göstermektedir.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.