2 Aralık 2007 Pazar

SQL Server 2005: Otomatik E-Posta Gönderme

Son güncelleme tarihi: 02 Aralık 2007


Merhaba arkadaşlar,

Bu sefer size, oluşturduğunuz bir işte (Job) bir hata meydana geldiğinde veya iş başarıyla tamamlandığında, işlemin sonucunu bildiren bir e-postanın otomatik olarak nasıl SQL Server tarafından göndertileceğini anlatacağım.

Bu işlem için değişik yerlerden değişik ayarlar yapıp, bunları tümleşik bir sistem halinde çalıştıracağız. Meselâ bu ayarlar aşağıdaki konularda olacak:

- Database Mail
- Operator
- SQL Server Agent Job

Size öncelikle özetle Database Mail' den bahsetmek isterim. Database Mail, SQL Server 2005 ile birlikte geldi. Microsoft artık SQLMail özelliğinin yerine Database Mail' in kullanılmasını öneriyor. SQLMail eskide kaldı anlayacağınız. Database Mail, SQLMail' in halefi ve tamamen yeniden tasarlanmış hâli. Ayrıca SQLMail' deki gibi Outlook gibi bir harici programa da ihtiyaç duymadan Database Mail ile SQL Server' ınızdan eposta gönderebilirsiniz.

SQL Server 2005 ilk kurulduğunda neredeyse her şeyin varsayılan olarak yasak olduğunu görürsünüz. Bu, güvenlik amacıyla yapılmıştır. Database Mail de varsayılan olarak kullanılamaz durumdadır. Öncelikle aşağıdaki adımları uygulayarak Database Mail' i kullanılabilir hale getirin.

- Başlat\Programlar\Microsoft SQL Server 2005' dan "SQL Server Surface Area Configuration" aracını açın *

- "Select a component, and then configure its features:" etiketinin altındaki listeden ayar yapmak istediğiniz ilgili Instance' ı seçin.

- "Database Engine" düğümü altındaki Database Mail' e tıklayın ve daha sonra "Enable Database Mail stored procedures" seçeneğinin işaretli olduğuna emin olun ve penceredeki "OK" düğmesine tıklayarak pencereyi kapatın.

* SQL Server Surface Area Configuration ile Resim-1' de de gördüğünüz gibi SQL Server' da dair bazı özelliklerin kullanılabilir veya kullanılamaz olacağını ayarlarız. SQL Server Surface Area Configuration aracı SQL Server 2005 ile birlikte çıktı ve SQL Server 2008' de kaldırıldı.


Resim-1


Database Mail' i kullanılabilir hale getirdikten sonra, bir Profil ve Hesap tanımlamanız gerekecek. Bunun için de aşağıdaki adımları izleyin.

- SQL Server Management Studio' yu çalıştırın. "Management" düğümünü genişletin ve "Database Mail" in üzerinde farenin sağ tuşuna tıklayıp, açılan menüden "Configure Database Mail" e tıklayın.

- Açılan "Database Mail Configuration Wizard" penceresindeki "Manage Database Mail accounts and profiles" seçeneğini işaretleyerek "Next" düğmeyine tıklayın.


Resim-2


- "Manage Profiles and Accounts" penceresi açılacaktır. Bu penceredeki "Create a new profile" seçeneğini işaretleyip "Next" düğmesine tıklayın.

- "New Profile" penceresi açılacaktır. Bu pencerede hem yeni bir Profil tanımlayacağız, hem de yeni bir Hesap oluşturacağız. Bunun için Resim-3' ten kopya çekebilirsiniz =)


Resim-3


- "New Database Mail Account" penceresindeki "OK" düğmesine tıklatıkdan sonra "Database Mail Configuration Wizard" penceresindeki "Next" düğmesine, ardından da "Finish" düğmesine tıklayarak E-Posta için Profil ve Hesabı oluşturmuş oluyoruz.

- Bu noktada ayarların doğruluğundan emin olmak için oluşturduğunuz e-posta hesabına bir deneme postası gönderebilirsiniz. Bunun için "Database Mail" üzerinde farenin sağ tuşuna tıklayarak açılan menüden "Send Test E-Mail..." öğesine tıklayabilirsiniz.

Bu bölümde "Database Mail" i etkin hale geitirip, otomatik olarak e-posta göndermek için yeni bir Hesap ve bu hesap için yeni bir Profil oluşturduk.

Bir sonraki bölümde ise yeni bir Operator oluşturup, SQL Server Agent ayarımızı yapıp, bize sonucu hakkında bilgi verilmesini istediğimiz işi (Job) ayarlayacağız.


------------------------ 2. Bölüm -----------------------------


Bu bölümde yeni bir Operator oluşturup, SQL Server Agent ayarımızı yapıp, bize sonucu hakkında bilgi verilmesini istediğimiz işi (Job) ayarlayacağız.

İşe ilk önce SQL Server Agent' ında, Database Mail' i kullanabilmemiz için gerekli ayarı yapalım. Bunun için aşağıdaki adımları izleyin:

- SQL Server Management Studio' yu çalıştırın.

- SQL Server Agent servisinin çalıştığından emin olun. Daha sonra SQL Server Agent düğümünün üzerinde farenin sağ tuşuna basın ve "Properties" e tıklayın. "SQL Server Agent Properties" penceresi açılacaktır.

- Bu pencerenin sol tarafındaki "Select a page" bölümünden "Alert System" a tıklayın. Sağ taraftaki bölümde "Mail Session" kısmındaki "Enable mail profile" seçeneğini göreceksiniz. Bu seçeneğin işaretli olduğundan emin olun. Bu seçenekle beraber "SQL Server Agent Mail" i etkin hale getirmiş oluyoruz. Amma güvenlik var değil mi =)


Resim-4


Bu ayarı da yaptıktan sonra bir Operator oluşturmaya geçebiliriz. Peki neden Operator oluşturuyoruz, neden bir Operator' e ihtiyacımız var? Operator ne işe yarar kuzum Allah aşkına? gibi soruları havada bırakmamak için hemen Operator kavramına da bir ışık tutayım.

Operator' ü epostayı alıcak olan kişinin isim ve adres bilgilerini kaydetmek için kullanıyoruz arkadaşlar. Gerek e-posta alıcısı olsun, gerek Net Send ve gerekse Pager.

Şimdi Operator tanımlamaya geçebiliriz sanırım. Bunun için eğer SQL Server Management Studio açık değilse açın ve aşağıdaki adımları uygulayın:

- SQL Server Agent düğümünü genişletin.

- Operators' ın üzerinde farenin sağ tuşuna tıklayın ve açılan menüden "New Operator..." seçeneğini seçin.

- Açılan "New Operator" penceresindeki "Name" kısmına operatörün adını yazın.

- "Enabled" seçim kutusunun işaretli olduğundan emin olun, aksi takdirde operatöre eposta vs. gönderilmeyecektir.

- "E-mail name" metin kutusuna alıcının e-posta adresini yazın. "OK" düğmesine tıklayın ve Operator' ümüz de hazır işte!


Resim-5


Şimdi sadece bir iş kaldı, o da istediğimiz bir işi, oluşturduğumuz Operator' ü kullanarak ayarlamak.

Bunun için ayarlamayı yapmak istediğiniz bir işin özelliklerini açın ve aşağıdaki adımları izleyin:

- Açılan "Jop Properties" penceresinde, sol tarafta bulunan "Select a page" listesinden "Notifications" seçeneğini seçin.

- Sağ taraftaki "Actions to perform when the job completes" seçeneklerinden "E-mail" in yanındaki seçim kutusunu işaretleyin ve aşağı açılır listeden de oluşturduğumuz "Nesrin Yiğit" Operator' ünü seçin.

- Hemen Operator seçim kutusunun sağ tarafında üç tane seçenek bulunmaktadır. Eğer bu seçenekler "When the job fails" i seçerseniz, eposta size iş başarıyla tamamlanamadığı zaman gönderilecektir. Eğer "When the job succeeds" i seçerneseniz, iş başarıyla tamamlandığında gönderilecektir. Eğer "When the job completes" i seçerseniz, o zaman da iş başarıyla da olsa başarısızlıkla da olsa tamamlandığında size sonuç hakkında posta gönderilecektir.


Resim-6


İş ayarımızı da yapıp konumuzu bitirmiş olduk.

Özetle, bu makalede sizlere Database Mail' i nasıl etkinleştirip yapılandırabileceğinizi, SQL Server Agent' ın Database Mail için nasıl yapılandırabileceğinizi, nasıl bir Operator oluşturabileceğinizi ve SQL Server Agent Job' ınızı nasıl ayarlayabileceğinizi anlatmaya çalıştım, öğrendiğinizi umarım.



Ekrem Önsoy

2 yorum:

UfukArt dedi ki...

Üstadım ben management studio'da management altında database maili görmüyorum. sql 2008 r2 kullanıyorum. söylediğin surface menüsünü de bulamadım

Ekrem Önsoy dedi ki...

Selam,

Kullandığın SQL Server 2008 R2'nin Edition bilgisi nedir? Sanırım Express Edition... O, bu özelliği desteklemiyor.

Surface ise SQL Server 2005'te varsadece, 2008'den itibaren kalktı. Bunun yerine Database Mail'i etkinleştirmek için aşağıdaki komutu kullanabilirsin

EXEC sp_configure 'Database Mail XPs', 1; RECONFIGURE