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.