Yandex Metrica
SQL Server'da E-posta Adresini Uyumlu Hale Getiren Fonksiyon - Yasin Sunmaz

Yasin Sunmaz

Kodladıkça değişen bir dünya...

SQL Server'da E-posta Adresini Uyumlu Hale Getiren Fonksiyon

26.07.2022 yasinsunmaz 880 0

Projemizdeki kullanıcılara ait eposta adresi hatalı olabiliyor. Bu durumları yaşamamak için öncelikle kullanıcıdan eposta bilgisini alırken gerekli kontrolleri ve eposta uyumluluğunu kontrol ederek alıp kaydetmen en doğrusu olacaktır. Fakat mevcut sistemimizde hatalı mailler yer alabiliyor. Bu hatalar arasında Türkçe karakter içermesi, boş karakter içermesi, büyük harfli Türkçe karakter ve büyük harfler yer alıyor. Toplu eposta gönderimi sırasında bazı maillerin büyük harfli olduğu için eposta gönderimi sırasında hata aldım. Bunun yanında tabi Türkçe harf içeren epostalar da mevcuttu. Bu durumu veri tabanında çözmek için bir fonksiyon hazırladım.

Bu fonksiyon tek parametre almaktadır. Gönderilen eposta dolu olup olmadığını bakıyor. Eğer dolu ise @ işareti içerip içermediğine bakıyor aksi takdirde geçersiz bir mail olacak. Her iki durumu geçtikten sonra belirlemiş olduğum harf ve karakterler için REPLACE fonksiyonu ile ilgili değişiklikleri yaptım. Son olarak eposta adreslerini LOWER fonksiyonu ile harflerini küçülttüm.

SQL Fonksiyonu

CREATE FUNCTION dbo.LowerCaseEmailAddress (@EMAIL NVARCHAR(100))
RETURNS NVARCHAR(100)
AS
BEGIN
  DECLARE @TempString NVARCHAR(100)
  SET @TempString = @EMAIL
  IF NULLIF(@TempString, '') IS NOT NULL
  BEGIN
    IF @TempString LIKE '%@%'
    BEGIN
      SET @TempString = REPLACE(@TempString, ' ', '')
      SET @TempString = REPLACE(@TempString, 'Ü', 'u')
      SET @TempString = REPLACE(@TempString, 'ü', 'u')
      SET @TempString = REPLACE(@TempString, 'Ğ', 'g')
      SET @TempString = REPLACE(@TempString, 'ğ', 'g')
      SET @TempString = REPLACE(@TempString, 'Ç', 'c')
      SET @TempString = REPLACE(@TempString, 'ç', 'c')
      SET @TempString = REPLACE(@TempString, 'Ş', 's')
      SET @TempString = REPLACE(@TempString, 'ş', 's')
      SET @TempString = REPLACE(@TempString, 'İ', 'i')
      SET @TempString = REPLACE(@TempString, 'I', 'i')
      SET @TempString = REPLACE(@TempString, 'ı', 'i')
      SET @TempString = REPLACE(@TempString, 'Ö', 'o')
      SET @TempString = REPLACE(@TempString, 'ö', 'o')
      SET @TempString = LOWER(@TempString)
    END
    ELSE
    BEGIN
      SET @TempString = 'Invalid Email Address';
    END
  END
  ELSE
  BEGIN
    SET @TempString = 'Email Address Empty';
  END
  RETURN @TempString
END
GO

Farklı Eposta Formatlarına Ait Sonuçlar

Görseldeki epostaları incelediğiniz boş eposta, geçersiz eposta, boş karakter içerme, Türkçe karakterli eposta gibi farklı durumlarda örnekleri ve çıktılarını görebilirsiniz.

SQL Server'da E-posta Adresini Uyumlu Hale Getiren Fonksiyon

Eğer fonksiyonu silmek isterseniz aşağıdaki kodu kullanabilirsiniz:

DROP FUNCTION dbo.LowerCaseEmailAddress

Fonksiyona ek olarak iyileştirme yapılabilecek bir şey varsa belirtmekten çekinmeyin!

Umarım faydalı olmuştur. İyi çalışmalar dilerim.

  • Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.

Diğer Yazılar

SQL Server Synonym Nedir ve Nasıl Kullanılır?

09.01.2026 yasinsunmaz 159 0

Bu yazımda SQL Server'da oldukça faydalı olan synonym yapısını inceleyeceğiz. Veritabanı projelerinde zamanla tablo isimleri uzar, şema yapıları deği...

SQL Server Schema Kullanımı

10.12.2025 yasinsunmaz 201 0

Bu yazımda SQL Server'da oldukça faydalı olan schema yapısını inceleyeceğiz. SQL Server’da şema yapısı özellikle orta ve büyük ö...

SQL Server'da SELECT INTO ve INSERT INTO SELECT Kullanımı

31.05.2025 yasinsunmaz 577 0

Bu yazımda, SQL Server'da oldukça sık kullanılan ve günlük veri işlemlerinde hayat kurtaran iki komutu inceleyeceğiz: SELECT INTO ve INSERT INTO SELECT. Bu ...

SQL Server'da LAG() ve LEAD() Kullanımı

23.05.2025 yasinsunmaz 563 0

Bu yazımda SQL Server'da oldukça faydalı olan LAG() ve LEAD() fonksiyonlarını inceleyeceğiz. Bu fonksiyonlar, bir satırdaki veriye bakarken, o satırın öncesindeki v...

SQL Fonksiyonları: Veritabanlarında Güçlü ve Esnek İşlemler

09.06.2023 yasinsunmaz 1500 0

SQL (Structured Query Language), veritabanı yönetim sistemlerinde verileri yönetmek, sorgulamak ve işlemek için yaygın olarak kullanılan bir dildir. SQL fonksiyonl...