SQL Server ile ilgili her şey.

SQL Server’da Mail Adresi Kontrol Eden Fonksiyon

S

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.

SQL Server Eğitimleri Kanalına Abone Olun

Yazar Hakkında

Yavuz Selim Kart

SQL Server tarafında kendini ilerletmeye çalışırken bildiklerini sürekli başkalarına aktaran, yazılım dünyasında (C#, Java, Python vb.) kendini güncel tutmaya çalışan, araştırma yapmaktan bıkmayan, meraklı, bilginin üzerine bilgi katmaktan mutluluk duyan bir yazılım eğitmeni ve kod sever.
Grafik tasarım dünyasında Indesign'ı anlatacak kadar iyi kullanabilen, Photoshop ve Illustrator'e de orta düzey hakimiyeti bulunan, internet üzerinde online kimya dergisi kurmuş ve bunu yüzbinlerce kişiye ulaştırmayı başaran bir grafik sever.
WordPress tarafında 5 adet web sitesi kurmuş, bu sistemler üzerine çalışan bir WordPress sever.
Sosyal medya üzerinde okumalara ve araştırmalara devam eden, kendi kurmuş olduğu kimya dergisini daha çok kişiye nasıl ulaştırırım diye düşünen ve bu konuda SEO çalışmaları üzerine kafa yoran bir Sosyal Medya sever.
Kısaca çok çalışmayı seven, azimli biriyim.

Yavuz Selim Kart
SQL Server ile ilgili her şey.

Yazar

Yavuz Selim Kart

SQL Server tarafında kendini ilerletmeye çalışırken bildiklerini sürekli başkalarına aktaran, yazılım dünyasında (C#, Java, Python vb.) kendini güncel tutmaya çalışan, araştırma yapmaktan bıkmayan, meraklı, bilginin üzerine bilgi katmaktan mutluluk duyan bir yazılım eğitmeni ve kod sever.
Grafik tasarım dünyasında Indesign'ı anlatacak kadar iyi kullanabilen, Photoshop ve Illustrator'e de orta düzey hakimiyeti bulunan, internet üzerinde online kimya dergisi kurmuş ve bunu yüzbinlerce kişiye ulaştırmayı başaran bir grafik sever.
WordPress tarafında 5 adet web sitesi kurmuş, bu sistemler üzerine çalışan bir WordPress sever.
Sosyal medya üzerinde okumalara ve araştırmalara devam eden, kendi kurmuş olduğu kimya dergisini daha çok kişiye nasıl ulaştırırım diye düşünen ve bu konuda SEO çalışmaları üzerine kafa yoran bir Sosyal Medya sever.
Kısaca çok çalışmayı seven, azimli biriyim.