C# & SQL ile Tabloyu mail göndermek

C#

ÖMER ÇARNAÇAR

28.02.2018

1 Yorum


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.

sqlkodu

 

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 ,

ONAY

Stored prosedur ile  alınan değerleri database tarafından mail gönderim işlemini yapmasını sağlamış oluyoruz.

İŞLEM

 

 

Mail Çıktı durumu

 

SON HALİ

Faydalı olması dileğiyle

Başlık Değer