SQL ile Mail Gönderme
1.539 defa okundu
Konu: Raporlama
İçindekiler
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.
- DECLARE @Body varchar(max)
- DECLARE @TableHead varchar(max)
- DECLARE @TableTail varchar(max)
- DECLARE @Style as varchar(max)
- Set @TableTail = '</table></body></html>';
- Set @Style=
- '<html>
- <body>
- <head>
- <style>
- table {
- font-size: 95%;
- font-family: Helvetica, verdana, sans-serif;
- background-color: #fff;
- border-collapse: collapse;
- width: 800px;
- line-height: 10px;
- border: 2px solid #C1DAD7;
- }
- th {
- color: #6D929B;
- border: 1px solid #C1DAD7;
- letter-spacing: 2px;
- padding: 6px 6px 6px 12px;
- background-color: #f2f2f2;
- text-align: center;
- line-height: 20px;
- }
- td {
- border: 1px solid #C1DAD7;
- padding: 6px 6px 6px 1px;
- color: #6D929B;
- text-align: center;
- text-shadow: white 1px 1px 1px;
- line-height: 20px;
- }
- tr:nth-child(even) {
- background: #fff;
- }
- tr:hover {
- background: #a0522d;
- }
- </style>
- </head>'
- --HTML şablonu--
- Set @TableHead = @Style+'
- <table>
- <tr>
- <th>Sicil</th>
- <th>Adı</th>
- <th>Soyadı</th>
- <th>Unvan</th>
- </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
- --Mail alıcısı,konu, SQL mail profili
- EXEC msdb.dbo.sp_send_dbmail
- @recipients='deneme@gmail.com',
- @body_format='HTML',
- @body=@Body,
- @subject ='Personel Listesi',
- @profile_name ='yetkili1'
- --Sonuç
|
Sicil |
Adı |
Soyadı |
Unvan |
|
123 |
DENEME |
DENEK |
MÜDÜR YARDIMCISI |