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 = '[email protected]',
@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 = '[email protected]',
@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 = '[email protected]',
@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
аргумент за премахване на всяко подпълване, което се прилага автоматично към резултатите.