Merhaba ;
SQL ile belirli aralıkla yaptıgımız işlemleri otomatik yapmasını istediğimiz zamanlar olacaktır.
Öncelikle Mail tanımlama islemlerini yapmalısınız. Burdan
Örnek Senaryomuzda ACENTEDB işlem durumlarını ilgili Müşteriye mail olarak bildirmek ,
SQL SP olusturuyoruz.Burda kullanılan değişkenler istege göre farklılık gösterebilir.
@DAY NVARCHAR(50),@CARIKODU NVARCHAR(150),@MAILADRRESS NVARCHAR(150),@STATUS NVARCHAR(50)
Ben 4 parametre kullanacagım.
CREATE PROCEDURE SP_MAIL_SEND@DAY NVARCHAR(50),@CARIKODU NVARCHAR(150),@MAILADDRESS NVARCHAR(150),@STATUS NVARCHAR(50)ASBEGIN
DECLARE @MAIL_BODY VARCHAR(8000);
SET @STATUS = ‘Siparişiniz Durumu : ‘ + @STATUS
/* HEADER */SET @MAIL_BODY = ‘<table border=”1″ align=”center” cellpadding=”2″ cellspacing=”0″ style=”color:black;font-family:consolas;text-align:center;”>’ + ‘<tr> <th>TARİH</th> <th>KODU</th> <th>URETİM TÜRÜ</th> <th>DIS ACENTE</th> <th>PLAKA</th> <th>REFERANS</th> </tr>’; /* ROWS */SELECT @MAIL_BODY = @MAIL_BODY + ‘<tr>’ + ‘<td>’ + CONVERT(NVARCHAR(50), TARİH, 104) + ‘</td>’ + ‘<td>’ + KODU + ‘</td>’ + ‘<td>’ + URETIMTURU + ‘</td>’ + ‘<td>’ + DISACENTE + ‘</td>’ + ‘<td>’ + PLAKA + ‘</td>’ + ‘<td>’ + REFERANS + ‘</td>’ + ‘</tr>’FROM dbo.RAPORWHERE CONVERT(NVARCHAR(50),TARİH,104) = CONVERT(NVARCHAR(50),@DAY,104) AND MUSTERIDI = @CARIKODU ;
/*EKLENTİ SORGUSU*/
SELECT @MAIL_BODY = @MAIL_BODY + ‘</table>’;
EXEC msdb.dbo.sp_send_dbmail @profile_name = ‘MailSend’ , @recipients = @MAILADDRESS , @subject = @STATUS , @body = @MAIL_BODY , @body_format = ‘HTML’ , @query = ‘SELECT * FROM DATAHOUSE.dbo.RAPOR’ , @attach_query_result_as_file = 1 , @query_attachment_filename = ‘Test.xls’ , @query_result_no_padding = 1 , @query_result_header = 1 , @query_result_width = 256 , @query_result_separator = ‘ ‘;
END
Bu sorguyu SQL üzerinden farklı şekillerde kullanmak mümkün
Örnek ;
EXECUTE dbo.SP_MAIL_SEND @DAY = N” , — nvarchar(50)
@CARIKODU = N” , — nvarchar(150)
@MAILADDRESS = N” , — nvarchar(150)
@STATUS = N” — nvarchar(50)
C# Asp.net Uygulaması üzerinden ilgili parametrelere değerleri gönderip işlem sırasında arka plandan mail gönderme işlemi içinse ,
Stored prosedur ile alınan değerleri database tarafından mail gönderim işlemini yapmasını sağlamış oluyoruz.
Mail Çıktı durumu
Faydalı olması dileğiyle