Makale Özeti

Database Mail, Microsoft SQL Server 2005 Database Engine’i kullanarak mail gönderilmesini sağlayan kurumsal bir çözümdür. Database mail kullanarak uygulamalarınızdan, sorgu sonuçlarını içeren mailleri, ağ üzerindeki diğer kaynaklardan da bilgi alarak gönderebilir. Database Mail; dayanıklılık, ölçeklenebilirlik, güvenlik ve desteklenebilirlik sağlar…

Makale

SQL Server 2005 İçerisinde Database Mail Özelliği

·          Dayanıklılık

o         Önceki sürümlerde olduğu gibi Microsoft Outlook veya MAPI clienti gerektirmez. Database Mail mail göndermek için SMTP’yi kullanır. Yerel ağdaki veya internet üzerindeki herhangibir SMTP server aracılığıyla mailleri gönderir.

o         Process isolation vardır. Gönderdiğini mailler SQL Server tarafından kuyruğa alınır ve SMTP server online olduğu zaman birer birer gönderilmeye başlanır.

o         Bir Database Mail profili içerisinde birden fazla SMTP server tanımlayabilirsiniz. Bir SMTP serveriniz offline olduğunda mailleriniz diğer SMTP server aracılığyla gönderiliyor olacaktır.

o         Cluster yapısı tamamen desteklenir.

·          Ölçeklenebilirlik

o         Arkaplanda mailler gönderilir, dolayısıyla asenkron bir iletim vardır. Mail göndermek için msdb database’indeki  sp_send_dbmail stored procedure’ini çağırdığınızda, Database Mail mail gönderim isteklerini Service Broker kuyruğuna yönlendirir. Gönderilen mailler msdb..sysmail_mailitems tablosuna kaydedilerek zamanla gönderilmeye başlanır.

o         Çoklu profil desteği vardır. Böyleye bir SQL Server Inctance’i içerisinde birden fazla profil oluşturup çeşitli amaçlar için farklı profiller kullanabilirsiniz.

o         Çok hesap desteği vardır. Bir profil içerisine birden fazla mail hesabı tanımlayarak birinde problem olması durumunda diğeri ile çalışılmasını sağlayabilirsiniz.

o         Mailler databasede saklanır. Msdb database’i içerisinde sysmail_ ile başlayan tablolarda Database Mail ile gönderilen mesajlar saklanır, istediğinizde bu tablolardan ulaşabilirsiniz.

o         64 bit desteği vardır. Database Mail SQL Server 2005’in 64 bitlik kurulumlarında tamamen desteklenmiştir.

·          Güvenlik

o         Güvenlik nedeniyle default olarak kapalı gelmektedir. Database Mail Configuration sihirbazı aracılığıyla veya SQL Server Surface Area Configuration Tool’u aracılığıyla aktifleştirilebilir. Aktifleştirildiğinde sp_configu

o         Profil bazında güvenlik. Database Mail için , msdb database’inin kullanıcılarına ve gruplarına profil bazında yetki tanımlanır.

o         Attachment boyutu yöneticisi. Database Mail, konfigürasyonda izin verilen boyutta ek göndermeye izin verir.

o         Yasaklanan dosya uzantıları. Database Mail, konfigürasyonda yasaklanan dosya uzantıları listesini sorar, kullanıcılar bu uzantıya sahip dosyaları attachment olarak gönderemezler.

o         Günlük mail limiti. Database Mail, konfigürasyonda kullanıcıların günlük mail gönderebileceğini sorar, -1 sınırsız demektir. Db_owner rolü olmayan kullanıcılar limitini aşamaz.

·          Desteklenebilirlik

o         Entegre konfigürasyon. Database Mail, E-mail hesaplarının bilgilerini Database Engine içerisinde saklar. Konfigürasyon sihirbaz aracılığıyla yapılacağı gibi, tamamen Transact-SQL ile de yapılabilir.

o         Loglama. Database Mail, e-mail aktivitelerini SQL Serverda logladığı gibi aynı zamanda Microsoft Windows Application Log Event log ‘unda kaydeder.

o         Denetim. Database Mail, gönderilen mesajların ve eklerinin bir kopyasını msdb database’inde saklar. Mail kullanımının ve gönderilen maillerin denetimini kolayca yapabilirsiniz.

o         HTML destekler. Database Mail maillerinizi HTML formatında göndermenizi destekler.

Not: Sql Server 2005 Beta 2 sürümünden sonra bağzı değişiklikler olmuştur.

 

Beta2'de

June CTP (9.0.1187) ve sonrası için

Modülün adı

SQLiMail

Database Mail

Kullanılan Database

Konfigurasyonda soruluyor

MSDB

Mail gönderilmek için kullanılan procedure

sendimail_sp

sp_send_dbmail

 

 

Database Mail Konfigürasyonu

Microsoft SQL Server Management Studio’da Manegement’in altında Configure Database Mail tıklanarak, Profil ve içine mail hesapları eklenir. Daha sonra aynı ekrandan değişiklik ve yetkilendirme sihirbaz aracılığıyla yapılabilir.

 

 

Database Mail Kullanımı

Aşağıdaki T-SQL koduyla 100 adet test maili gönderilmektedir.

/*-------------------------------

     Database Mail Örneği

-------------------------------*/

USE MSDB

GO

DECLARE  @i             INT

        ,@lots          INT

        ,@subject       NVARCHAR(100)

        ,@start_time    DATETIME

 

SET @lots = 100

SET @start_time = GETDATE()

SET @i = 1

WHILE(@i <= @lots)

 

BEGIN

     SET @subject = 'Test Message ' + CAST(@i AS VARCHAR)

     EXECUTE sp_send_dbmail

                  @profile_name  = 'erkan'

                ,@recipients    = 'erkan@erkan.nom.tr'

                 ,@body          = 'Test'

                 ,@subject       = @subject

 

     SET @i = @i +1

END

GO

Veeee sonuç: