Sql üzerinden ...
 
Bildirimler
Hepsini Temizle

Sql üzerinden mail gönderme  

  RSS
bluess_devils
(@bluess_devils)
Üye

Merhaba arkadaşlar;


Sql 2005 ve sql 2008 olmak üzere iki tane serverim var.Database üzerindeki bir tabloda  belli bir sütüna,önceden belirlenmiş bir kriterde,değer girildiğinde bunu mail yoluyla atabilir miyiz ?.Sqlde bu şekilde bir  işlem mümkün mü ?


Yardımcı olabilir misiniz ?


 


 

Alıntı
Gönderildi : 02/09/2010 12:07
bluess_devils
(@bluess_devils)
Üye

Arkadaşlar;


Çözümparkta bunun ile ilgili bir mail buldum.Biraz inceleyim.Zamanınızı şimdiden çalmayayım. 


 

CevapAlıntı
Gönderildi : 02/09/2010 12:38
Turgay Sahtiyan
(@turgaysahtiyan)
Üye

Vakti zamanında şu makaleyi yazmıştım. SQL Server 2008 Mail Gönderme

  http://turgaysahtiyan.com/post/SQL-Server-2008-den-Mail-Gonderme.aspx  

CevapAlıntı
Gönderildi : 02/09/2010 12:41
bluess_devils
(@bluess_devils)
Üye

Turgay Bey;


Konuyu araştırdım.Buldum ama bir türlü mail gelmiyordu.Sayenizde sql agent'i restart edince durum düzeldi.


Job ile şöyle bir işlem gerçekleştirebilirmiyiz ?


Databasede,kullanıcı yeni bir cari kart eklendiğinde,bunun mailini alabilir miyiz ? Cari kodu,ünvanı,bu cariyi kaydeden kullanıcının bilgileri mail olarak gelebilir mi ? Bu mümkün mü?


 Ayrıca bankamatikten nakit çekildiğinde cep telefonunuza hemen mesaj gelir.Bu da bir nevi sql üzerindeki bir database tablosunda bir hareket gerçekleşiyor.Sonucunuda müşterilerine mesaj olarak atıyorlar.Diye düşünürdüm.Eğer bu düşünce doğru ise yukarıdaki işlemin bundan farkı,sonucu mail olarak istemek değil midir ?


 Bilgi ve deneyimlerinizi benimle paylaşmanızı sizlerden rica ediyorum..


Herkese iyi günler...


 


 


 

CevapAlıntı
Gönderildi : 03/09/2010 03:17
Turgay Sahtiyan
(@turgaysahtiyan)
Üye

Merhaba,

Konunun çözülmesine sevindim. Benim makaleyi kullanarak çözdüğün için ayrıca sevindim 🙂

Sorularına gelecek olursak;

Tabiki yeni bir carikart açıldığında bunu mail olarak gönderebilirsin. Bunu yapabilmek için birden fazla yöntem kullanılabilir.

- CariKart tablosuna bir insert trigger yazarak buraya insert edilen carikart bilgileri CariKartMail diye bir tabloya atabilir, bu tabloyuda bir job ile örneğin 15 dk da bir kontrol ettirip kayıt var ise bunu mail atar ve olan kaydı bu tablodan silebilirsin.

- Yada hiç trigger ile uğraşmayıp direk carikart tablosunu okuyup yeni bir kart var ise bunu mail atabilirsin. Yeni bir kaydın olup olmadığını ve zaten maili atılmış bir carikart ı bir daha mail atmamak için şu kontrolü yapabilirsin.

- Cari kart tablonda zaten auto increment bir alan varsa en son mail attığın id yi tutarak bundan büyük kayıt varmı diye bakıp mail atabilirsin.

- Eğer auto increment  alan yok ise mail attığın carikart ları CariKartMailed diye bir tabloda tutup daha sonra carikart ta yeni kayıt var mı diye bakarken CariKartMailed de olup olmadığına bakabilirsin.

Bankamatik örneğin ise biraz daha farklı. Bunu job olarak kontrol ettiklerini düşünmüyorum çünkü sms anlık olarak geliyor. Bunu şöyle yapıyorlardır. para çekme işleminin iş akışının en sonunda bir web service call ediliyor ve bu servis te kullanıcıya sms atıyordur.

Tabi senin örneğinde uygulama başka bir firmanın olduğu için bunu yapman/yaptırman biraz zor olacaktır. Ayrıca bu şekilde anlık olarak kontrol etmek çok da önemli olmasa gerek. 

Umarım açıklayıcı olmuştur 🙂 

CevapAlıntı
Gönderildi : 03/09/2010 13:27
bluess_devils
(@bluess_devils)
Üye

Turgay Bey;


 İlginize çok teşekkür ederim.Aklımdaki bütün sorulara cevap buldum.Gayet açıklayıcı yazmışsınız.


Denemeler yaptıktan sonra,eğer bir sorun ile karşılaşırsam size tekrar geri dönüş yapmak isterim.Sizin içinde uygunsa tabi.


Kolay gelsin.İyi günler... 


 


 

CevapAlıntı
Gönderildi : 03/09/2010 13:45
Turgay Sahtiyan
(@turgaysahtiyan)
Üye

Uygundur tabi. Zevkle yardımcı olurum.

İyi çalışmalar 

CevapAlıntı
Gönderildi : 03/09/2010 14:33
bluess_devils
(@bluess_devils)
Üye

Turgay Bey;


Dün gece jobun sonucunu mail olarak almak üzere çalışma gerçekleştirdim.Mevcut jobum 2 saniyede çalışan bir jobtu.Bunu maile bağlamaya çalıştığımda sql loglarında hatalar verdi.Hani dediğiniz hatalar.Sonra tabi düzelttik.


Sabah geldik şirkete,servere bağlanamıyorduk.Serveri kapatıp tekrar bağlanmak durumunda kaldık.Sistemcimiz serverda joblardan dolayı serverin cevap veremez hale geldiğini ve job kullanmamamız gerektiğini söyledi.


2 saniyede bir job mail atmak istedi.Atamadı.Bu serveri yorar mı ? 


Düzgün bir şekilde joblar mail atarsa 2 saniye bile olsa sistemim yorar mı ? 


Birden fazla jobum olsa ve mail ile sonuç döndürse sistemimi yorar mı ?


Joblar sisteme ne kadar yük getirirde diyebiliriz.Joblarla ilgili pek çok kontrol yapmayı düşünüyordum.Tereddüte düştüm.Bu konuda da beni bilgilendirirseniz gerçekten çok iyi olmuş olacak.


İyi Çalışmalar...  


 


 


 

CevapAlıntı
Gönderildi : 03/09/2010 15:55
Turgay Sahtiyan
(@turgaysahtiyan)
Üye

Job un içindeki sorgunun ne kadar CPU ve memory kaynağı kullandığını bilmiyorum ama her halükarda 2 sn çooook iddalı bir süre olmuş.

Sizin örneğinizde yani yeni açılan cari_kart ları mail ile haber vermek için 2 sn de bir kontrol etmenin bir anlamı yok diye düşünüyorum. Çünkü finansal bilgi içermediği için çok hızlı haber vermek bu kadar önemli olmamalı.

Eğer genede en kısa zamanda öğrenmek istiyorum diyorsan insert trigger'da mail gönderimi yapabilirsin. Bunun için insert trigger'a aşağıdaki gibi mail gönderim sp sini çağırırak mail atabilirsin.

declare @msg varchar(100)

set @msg='mesaj buraya' 

EXEC msdb.dbo.sp_send_dbmail @recipients=N'deneme@deneme.com', @body= @msg,  @subject = 'Yeni cari kart açılması', @profile_name = 'MailProfileBuraya' 

Ama ben genede gün sonunda çalışan bir job la "Bugün Açılan Cari Kart'lar" tarzında bir raporun iş biriminin daha çok işine yarayacağını düşünüyorum. 

CevapAlıntı
Gönderildi : 03/09/2010 17:03
bluess_devils
(@bluess_devils)
Üye

Turgay bey;


2 saniyede bir çalışan job cari kartlar ile ilgili değil.Mağazalarımızda fatura keserken "ismail" diye açılan bir müşteri kartı,fatura çıktısında türkçe karakterler içerdiği için saçma sapan bir şey çıkıyor.Yazıcı driverdan kaynaklanan bir durumu job ile düzeltiyoruz.Bunun için kullanıyoruz onu.Cari kartları ise günlük almayı düşünüyorum.


Anladığım kadarıyla jobun içindeki sorgunun uzunluğu ve isteme süresinin sıklığı,cpu ve memory'nin kaynak kullanımı ile birebir alakalı bir durum.Job çalıştığında task manegerdan sqlservisini kontrol etmem gerekiyor,zannımca o zaman öğrenirim bu işi.


Tekrar teşekkür ederim ilginize iyi günler... 


 

CevapAlıntı
Gönderildi : 03/09/2010 17:42
Turgay Sahtiyan
(@turgaysahtiyan)
Üye

Aynen dediğin gibi sorgunun ne olduğuna, ne kadar performanslı yazıldığını, ne kadar IO CPU tükettiğine bağlı.

SQL Server da bu kontrollerin nasıl yapılacağını şu anda bir yazı dizisi halinde yayınlıyorum. Onu takip etmeni öneririm 🙂 

CevapAlıntı
Gönderildi : 03/09/2010 18:20
bluess_devils
(@bluess_devils)
Üye

Takibimdesiniz 🙂

CevapAlıntı
Gönderildi : 03/09/2010 18:35
 Anonim

Merhaba,

 

 Sql 2005 te bir sorgu sonucunu mail ile bildirmek istiyorum. Bu konuda yardımcı olabilir misiniz?

 

Saygılar ....

CevapAlıntı
Gönderildi : 04/09/2010 18:36
Turgay Sahtiyan
(@turgaysahtiyan)
Üye

Yukarıdaki mesajlarda bu konu hakkında baya bir detaylı bilgi verildi. Tam olarak sormak istediğiniz yada yapamadığınız nedir?

CevapAlıntı
Gönderildi : 06/09/2010 14:45
 Anonim

[quote user="Turgay Sahtiyan"]Yukarıdaki mesajlarda bu konu hakkında baya bir detaylı bilgi verildi. Tam olarak sormak istediğiniz yada yapamadığınız nedir?[/quote]

 

Direkt bir Query i (sql sorgusunu) , job olarak çalıştırmak istiyorum.

CevapAlıntı
Gönderildi : 06/09/2010 19:23
Paylaş: