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.

450 Kez Okundu

Kategoriler: