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 584 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 Fonksiyonları: Veritabanlarında Güçlü ve Esnek İşlemler

09.06.2023 yasinsunmaz 300 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...

SQL'e Dair Her Şey OneSQL'de, Ne Ararsanız Bulabileceksiniz

03.06.2023 yasinsunmaz 251 0

Veri tabanı yöneticilerinin yanında zaman zaman yazılımcıların da SQL'i aktif olarak kullanması gerekebiliyor. SQL'i belli başlı şekillder kullanıp işlemlerimizi ...

SQL Server Offset Fetch Kullanımı

06.03.2023 yasinsunmaz 637 0

Merhabalar uzun zamandır yazı yazamadım. Ülke olarak zor zamanlar geçirmekteyiz. Herkese çok geçmiş olsun diyerek kısa bir yazı ile tekrar buradayım. SQL ...

SQL Server Sequence Kullanımı

14.01.2023 yasinsunmaz 1240 0

Veritabanında yeni keşfettiğim Sequence özelliğini sizlerle paylaşmak isterim. Squence genel olarak belirli değerler arasında numeric ve sıralı sayılar üretir. ...

SQL Server OUTPUT Kullanımı Silinen Kaydın Bilgilerini Geriye Döndürme

11.01.2023 yasinsunmaz 368 0

Bu yazımda SQL Server'da OUTPUT ile DELETED komutunun yapısını inceleyeceğiz. Kayıtlar üzerinde yapılan silme işlemlerinde, kaydın bilgilerin...