SQL Server 2008 Kullanarak E-posta Göndermek
Tarih
28/12/2009 16:25
Konu Sahibi
arzuu
Yorumlar
3
Okunma
2806
Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 5/5 - 1 oy



arzuu
desire
Kullanici Avatari
Aktivasyon Bekleyen
341
17/02/2009
-
Ofis XP
24/04/2010,10:04
SQL Server kullanarak e-posta nasıl gönderilecek bunu anlatacağım. Sql Server 2000 mail gönderme sistemine sahipti fakat mail gönderebilmek için mutlaka MAPI alt yapısına sahip bir sistem hazırlamamız şarttı. Bu yapı aynen Sql Server 2005’de de tüm özellikleriyle korunuyor. Ancak gerekli hatta olmazsa olmaz diyebileceğimiz geliştirme geldi ve Database Mail isimli yeni bir mail gönderme sistemi Sql Server 2005’e eklendi. En önemli özelliklerinden biri artık MAPI alt yapısına ihtiyaç duymadan herhangi bir SMTP sunucu tanımlanarak gönderim yapılabiliyor. Bunun anlamı gmail hesabınızı sisteme tanımlayarak Sql Server 2005 üzerinden mail gönderebileceğinizdir.
Güvenilirlik :
Database Mail, önemli özelliklerinden biri olarak ön plana çıkan Simple Mail Transfer Protocol (SMTP) kullanabilme yeteneği ile göz doldurduğu kadar mail gönderme işleminin SMTP sayesinde Sql Server’dan ayrılmış olması ile güvenilirliği de artırmıştır. Bu sayede mail gönderme işlemi sırasında
SQL Server 2005 çok daha az kaynak kullanarak performans kaybı yaşamayacak, herhangi bir dış kaynaklı sorundan ise etkilenmeyecektir. Yine Database Mail sisteminin gelişmiş özelliklerinden biri de SMTP sunucusunda oluşan herhangi bir sorunda gönderilecek mailleri beklemeye alıp SMTP sunucusundaki sorun giderildikten sonra tekrar gönderebilmesidir. Ayrıca bir Database Mail profili birden fazla SMTP sunucusu barındırabilir. Böylece kullanım dışı bir SMTP sunucusu varsa tanımlı diğer SMTP sunucuları üzerinden mail gönderimi yapılabilir. İlginç bir diğer özellik ise Html formatında mail gönderebilmeniz.

Object Explorer üzerinde görüldüğü gibi Database Mail, Management başlığı altına konumlandırılmış. Sql 2000’den aşina olduğumuz MAPI tabanlı Sql Mail sistemi ise yine aynı başlık altında Legacy (= miras) isimli alt başlık içerisine eklenmiş. Eklendiği yerin ismi gibi gerçekten Sql 2000’den miras kaldı.

resim

resim

Database Mail üzerine sağ tuşla kliklediğimizde açılan menüden ulaşabileceğimiz Configure Database Mail sihirbazına yine Database Mail üzerine çift tıklayarak da ulaşabiliyoruz.
Açılan sihirbaz basitçe bir profil tanımlayarak bu profil için SMTP sunucuları tanımlamanızı kolaylaştırıyor.

resim

resim

En üstteki seçenekle devam ettiğimizde profil tanımlaması yapabileceğimiz ve bu profile SMTP sunucuları tanımlayabileceğimiz ekran açılıyor. Öncelikle bir profil ismi girip açıklama bilgilerini doldurmamız yararlı olacaktır.Profil tanımlamalarını yaptıktan sonra ise SMTP accounts: bölümünden Add -> New Account tuşu ile SMTP sunucularını ekliyoruz. SMTP sunucularını eklerken bir isim verdikten sonra Outlook Express benzeri bir tanımlama ekranıyla SMTP sunucu adresini, kullanıcı adı ve şifreyi gerekli alanlara giriyoruz.

resim

resim

Birkaç SMTP sunucusu tanımladıktan sonra bunların önceliklerini de seçili sunucunun sırasını değiştirerek ayarlayabiliyoruz. Özellikle dikkat edeceğiniz nokta tanımlama yaparken Gmail gibi sunucularda “This server requires a secure connection(SSL)” işaretli olması gerekmektedir. Bunu öğrenmek için kullandığınız sunucunun bu özelliği destekleyip desteklemediğine bakmanız gerekmektedir. Eğer bu özelliği destekleyip siz kullanmazsanız e-posta göndermede “kullanıcı geçersiz” hatası alırsınız.

İşleme devam ettiğimizde aşağıdaki gibi sistem parametrelerini değiştirebileceğimiz bir yönetim ekranı açılacaktır. Burada gerekli ayarları da yaptıktan sonra Sql Server 2008′in profilimizi oluşturması ve accountları tanımlaması için devam edebiliriz.

resim

resim

Tüm bu işlemlerin ardından profilimiz oluşturulacak ve SMTP hesapları bu profille ilişkilendirilecektir.
Ölçeklenebilirlik :
Database Mail eş zamanlı olarak ve/veya arka planda çalışarak mail gönderme işlemlerini yapar. sp_send_dbmail stored procedure çağrıldığında Database Mail, Service Broker bekleme listesine bir istek sırası ataması yapar. Ardından stored procedure işletilerek dış mail sunucusuna istek gönderilir ve mail teslim edilir.
Çoklu profil desteği sayesinde birden fazla profil tanımlanabilir ve istenilen profil stored procedure parametresiyle belirlenerek mail gönderilebilir. Yine aynı şekilde çoklu SMTP hesabı desteğiyle bir profile birden fazla SMTP sunucusu tanımlanabilir. SMTP hesapları ve profiller birbirlerinden ayrı değerlendirildiği için aynı SMTP hesapları farklı profiller için kullanılabilir durumdadır.
Güvenlik :
Öntanımlı olarak Database Mail kullanımı kapalıdır. Bu yüzden Database Mail’i kullanabilmek için Sql Server Surface Area Configuration aracı kullanılarak Database Mail stored procedure kullanıma açılmalıdır.
Ancak daha önceden bahsettiğimiz gibi Sql Server 2008′de Surface Area Configuration aracı facet altındadır. Policy Management -> Facet -> Surface Area Configuration gelip sağ tıklayıp properties seçiyoruz.

resim

resim
Database Mail gönderebilmek için kullanıcının
DatabaseMailUserRole isimli veritabanı kullanıcı tanımına üye olması gerekir. Ayrıca profil güvenliği de mevcuttur. Buna göre tanımlayacağınız Database Mail profillerinden public olarak ayarlanan profil tüm msdb veritabanı kullanıcıları tarafından mail göndermek için kullanılabilecektir. Public olarak tanımlanmamış tüm diğer profillere ise ayrıntılı kullanıcı güvenlik ayarları tanımlanabilir.
Database Mail ile gönderilecek dosya boyutuna sınırlama getirilebilir. Bu konuda aktif bir yönetim sistemi bulunuyor. Yine gönderilecek dosyalarda uzantı sınırlaması da yapılabilir.
Kullanım :
Database Mail kullanımı sp_send_dbmail isimli stored procedure aracılığıyla yapılabiliyor. Kullanımı xp_sendmail yapısına benzemekle birlikte bir çok ek parametre desteklenmiş. Aşağıda tam bir sytax ve örnek bir kullanımı bulunuyor.

resim

DECLARE @email nvarchar(50)
DECLARE emailCursor CURSOR FOR
SELECT email FROM deneme;
OPEN emailCursor;
FETCH NEXT FROM emailCursor INTO @email
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXEC msdb.dbo.sp_send_dbmail@profile_name='deneme',
@recipients=@email,@body='deneme',@body_format='HTML',
@subject='deneme';
FETCH NEXT FROM emailCursor INTO @email
END
CLOSE emailCursor
DEALLOCATE emailCursor
GO

Database Mail seçeneğine gelip “Send Test E-mail” tıklayarak sistemin çalışıp çalışmadığını kontrol edebilirsiniz.

Alıntıdır.
Cevapla


Puletin
Uzman
Kullanici Avatari
Uzman
1.716
01/11/2008
416
Ülke Dışı
Ofis 2003
29/10/2016,20:35
Paylaşımınız için teşekkürler sayın arzuu
Kaplumbağa ya dikkat et...
Sadece başını çıkartıp risk aldığında ilerleyebiliyor...
Cevapla


benremix
Uzman
Kullanici Avatari
Uzman
R.... S....
4.432
17/05/2009
365
Ankara
Ofis 2010
Dün,21:30
Sn Arzu hanım paylaşım için teşekkürler. Saygılar...
Bilgi paylaşıldıkça çoğalır....
Her engel, yaşam koşullarınızı daha iyileştirecek bir fırsattır.


Access için her zaman lazım olacak konu başlıkları listesi 


Cevapla


arzuu
desire
Kullanici Avatari
Aktivasyon Bekleyen
341
17/02/2009
-
Ofis XP
24/04/2010,10:04
yorumlarınız için teşekkürler arkadaşlar
Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
  SQL Server 2008 Express için Bilgi assenucler 7 1.787 12/01/2015, 11:29 alpeki99
  laptopta 2 ayrı sql server ve bir sorun assenucler 5 1.154 07/01/2015, 22:30 assenucler
  Access formundaki açılır kutunun kayıt kaynağını SQL Server'daki parametreli Stored Procedure yapmak abkbek 2 2.229 22/08/2014, 00:08 abkbek
  Sql Server aldığım tablonun otomatik update etmesi highborn 0 1.076 24/07/2014, 14:14 highborn
  SQL Server Metin Birleştirme mmmm 2 2.247 22/10/2013, 18:28 mmmm


Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya