İçeriğe geç

SQL ile Mail Gönderme

1.539 defa okundu

Konu: Raporlama

SQL ile Mail Gönderme

MS SQL ile mail göndermek için aşağıdaki script kullanılabilir. SQL den mail atabilmek için öncelikle bir mail profili tanımlamak gerek bu örnekte yetkili1 isminde sql mail profili kullanılmıştır.

SQL
  1. DECLARE @Body varchar(max)
  2. DECLARE @TableHead varchar(max)
  3. DECLARE @TableTail varchar(max)
  4. DECLARE @Style as varchar(max)
  5. Set @TableTail = '</table></body></html>';
  6. Set @Style=
  7. '<html>
  8. <body>
  9. <head>
  10. <style>
  11. table {
  12. font-size: 95%;
  13. font-family: Helvetica, verdana, sans-serif;
  14. background-color: #fff;
  15. border-collapse: collapse;
  16. width: 800px;
  17. line-height: 10px;
  18. border: 2px solid #C1DAD7;
  19. }
  20. th {
  21. color: #6D929B;
  22. border: 1px solid #C1DAD7;
  23. letter-spacing: 2px;
  24. padding: 6px 6px 6px 12px;
  25. background-color: #f2f2f2;
  26. text-align: center;
  27. line-height: 20px;
  28. }
  29. td {
  30. border: 1px solid #C1DAD7;
  31. padding: 6px 6px 6px 1px;
  32. color: #6D929B;
  33. text-align: center;
  34. text-shadow: white 1px 1px 1px;
  35. line-height: 20px;
  36. }
  37. tr:nth-child(even) {
  38. background: #fff;
  39. }
  40. tr:hover {
  41. background: #a0522d;
  42. }
  43. </style>
  44. </head>'
  45. --HTML şablonu--
  46. Set @TableHead = @Style+'
  47. <table>
  48. <tr>
  49. <th>Sicil</th>
  50. <th>Adı</th>
  51. <th>Soyadı</th>
  52. <th>Unvan</th>
  53. </tr>'

--Rapor içerik sorgusu--
Select @Body= (
Select
SICIL As [td],
ADI As [td],
SOYADI As [td],
UNVAN As [td]
FROM PERSONEL
WHERE SICIL IN ('1','2','3')
For XML raw('tr'), Elements)

-- Replace the entity codes and row numbers
Set @Body = Replace(@Body, '_x0020_', space(1))
Set @Body = Replace(@Body, '_x003D_', '=')
Set @Body = Replace(@Body, '<tr><TRRow>1</TRRow>', '<tr bgcolor=#C6CFFF>')
Set @Body = Replace(@Body, '<TRRow>0</TRRow>', '')

Set @Body = @TableHead + @Body + @TableTail

SQL
  1. --Mail alıcısı,konu, SQL mail profili
  2. EXEC msdb.dbo.sp_send_dbmail
  3. @recipients='deneme@gmail.com',
  4. @body_format='HTML',
  5. @body=@Body,
  6. @subject ='Personel Listesi',
  7. @profile_name ='yetkili1'
  8. --Sonuç

Sicil

Adı

Soyadı

Unvan

123

DENEME

DENEK

MÜDÜR YARDIMCISI

Bu yazı işinize yaradı mı?

Raporlama konusundaki diğer yazılar

Raporlama: 10 yazının tümü →

WhatsApp'ta paylaş

İlgili Yazılar