SQL Server ни предоставя възможността да изпращаме имейли чрез своето решение за Database Mail. Това включва куп съхранени процедури, които улесняват конфигурирането и изпращането на имейли.
За да изпратите имейл, използвайте sp_send_dbmail съхранена процедура. Тази процедура приема куп незадължителни аргументи, един от които ви позволява да изпращате прикачени файлове.
Всъщност има два аргумента, които ви позволяват да изпращате прикачени файлове. Този, който използвате, ще зависи от контекста.
Те са:
@file_attachments– Позволява ви да посочите файл, който да прикачите към имейла.@attach_query_result_as_file– Това е приложимо само ако използвате и@queryда изпратите по имейл резултатите от заявка.
Примери по-долу.
Прикачване на файл
@file_attachments аргумент ви позволява да посочите файл, който да прикачите към имейла.
Ето един пример:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = 'example@sqldat.com',
@body = 'The attached file contains all required data.',
@file_attachments = '/var/opt/mssql/bak/Nature.bak',
@subject = 'File attached as discussed'; Стойността трябва да включва абсолютния път до файла.
По подразбиране максималният размер на файла е 1 MB на файл, но можете да промените това с sysmail_configure_sp съхранена процедура.
Прикачване на няколко файла
Можете да прикачите няколко файла, като разделите името на всеки файл с точка и запетая:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = 'example@sqldat.com',
@body = 'The attached files contain all required data.',
@file_attachments = '/var/opt/mssql/bak/Nature.bak;/var/opt/mssql/bak/World.bak',
@subject = 'Files attached as discussed'; Както споменахме, ограничението за размера на файла се прилага за всеки файл. Така че, ако ограничението за размера на файла е 1 MB, всеки файл в този пример може да бъде до 1 MB (което води до общ размер от 2 MB за двата прикачени файла комбинирани).
Прикачване на резултати от заявка
Можете също да използвате Database Mail, за да изпратите по имейл резултата от заявка. Това се прави с @query аргумент. По подразбиране резултатите са изброени в тялото на имейла, но можете да ги добавите като прикачен файл, ако предпочитате.
За да ги добавите като прикачен файл, задайте @attach_query_result_as_file аргумент със стойност 1 .
Ето пример за изпращане на резултатите от заявката като прикачен файл:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = 'example@sqldat.com',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@attach_query_result_as_file = 1,
@subject = 'Query results as discussed'; Има доста опции, които са ви достъпни, когато изпращате резултати от заявка в имейл.
Например, можете да използвате @query_attachment_filename за да посочите името на файла (ако не е посочено, Database Mail ще го направи). Можете също да използвате @query_result_header аргумент, за да укажете дали заглавките са включени в заявката или не и можете да използвате @query_result_no_padding аргумент за премахване на всяко подпълване, което се прилага автоматично към резултатите.