Merhaba arkadaşlar bu yazımda veri tabanından otamatik mail gönderen bir sistemden bahsetmek istiyorum.

Bunun için ilk olarak sql serverınızın enterprice yada standart olması gerekmektedir oradan da agent servicesinin açık olması gerekmektedir. Onu sql configiration manager dan start edebiliriz.

AGENT SERVİCE AÇIK OLMASI DOĞUM GÜNÜ KUTLAMA VS BU İŞLER İÇİN GEÇERLİDİR…

Uygulamalarımızda SQL Server üzerinden direk mail gönderebiliriz. Örneğin bir job hazırlayıp doğum günü olan kişilere otomatik olarak mail gönderme yada otomatik backup alan job larda herhangi bir hata oluştuğunda yetkili kişilere mail gönderilmesini sağlayabiliriz.
Bunun için SQL Server üzerinde bazı ayarlamaların yapılması gerekmektedir.
İlk olarak Database Mail ayarlamasının nasıl yapıldığına bakalım.
Management Studio >> Management >> Database Mail kısmında sağ tık yapıp Configure Database Mail i seçelim. Açılan ekranda next e basıp bir sonraki gelen ekranda ilk seçenek seçiliyken next e basalım ve aşağıdaki ekrana erişelim.
Profile Name kısmına bir isim yazıp SMTP ayarlamalarını yapmak üzere Add butonuna basalım.

Gelen bu ekranı kendi mail hesabınızın özelliklerine göre doldurun. Eğer SMTP sunucunuz kullanıcı onaylama istiyorsa bunu basic authentication kısmında tanımlayın eğer istemiyorsa anonymous authentication kısmını seçip Ok e basın.
Gelen ekranlara next-next diyerek Database Mail yapılandırmasını sonlandırın.
Yapılan ayarlamaların doğru olduğunu test etmek için Database Mail e sağ tıklayıp Send Test E-Mail bölümüne geçelim
Gelen ekranda Mail system olarak Database Mail seçip Mail profile olarak az önce tanımlamış olduğumuz mail profile ı seçelim ve bu ekranı OK diyerek kapatalım.
Artık profiller tanımlayıp bu profilleri job ta kullanıp mail gönderebilirsiniz. Son olarak job da bu işlemin nasıl tanımlanacağı ile alakalı bir ekran görüntüsü vererek yazımızı noktalayalım.
Gelen ekranda Mail system olarak Database Mail seçip Mail profile olarak az önce tanımlamış olduğumuz mail profile ı seçelim ve bu ekranı OK diyerek kapatalım.
Artık profiller tanımlayıp bu profilleri job ta kullanıp mail gönderebilirsiniz. Son olarak job da bu işlemin nasıl tanımlanacağı ile alakalı bir ekran görüntüsü vererek yazımızı noktalayalım.
Bu kadar basit

Sonra aşagıdaki kodu yazınca her bir veri insert olduğunda atabiliriz… Sildiği zaman atmak için kodda for insert yazan yeri for delete ; update olduğu zaman atmak için ise for update yazmamız yeterli olacaktır
create trigger mail_service on tablo
for insert
as begin
declare @body nvarchar(max)
declare @id int
select @id=ins.id from inserted as ins
select @body=coloms  from tablo where id=@id
 EXEC msdb.dbo.sp_send_dbmail
  @recipients = ‘Alan Posta’,  –Alan
  @profile_name = ‘Ramazan’, –Gönderen
  @subject = ‘Bilgilendirme’,
  @body = @body
end
Aşagıda ise doğum günü olanları bulup mail atan kod vardır. Bunu bir tane joba bağlayarak doğum günü olanlara otamatik mail atan bir yapı oluşturabiliriz…

declare @mail nvarchar(50)
select @mail=[E_posta] from deneme.[dbo].[table1] as tbl
where SUBSTRING( ltrim(rtrim(
replace(convert(NVARCHAR, [Dogum tarihi], 102), ‘.’, ‘_’)
)),6,11) like 
 SUBSTRING( ltrim(rtrim( 
  replace(convert(NVARCHAR, getdate(), 102), ‘.’, ‘_’))),6,11)

EXEC msdb.dbo.sp_send_dbmail
 @recipients = @mail,  –Alan 
 @profile_name = ‘Ramazan’, –Gönderen
 @subject = ‘Dogum gunu’, 
 @body = ‘Dogum gunun kutlu olsun’

Bu yazı Buradan alıntı yapılmıştır.
Ramazan CESUR