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.

SQL Server’da Mail Adresi Kontrol Eden Fonksiyon

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.

433 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!