В SQL Server можете да изпращате имейли с помощта на sp_send_dbmail
съхранена процедура в msdb база данни.
Един от изборите, които имате, когато изпълнявате тази процедура, е дали да включите или не резултатите от заявка.
Друг избор, който имате, е дали да изпратите тези резултати в прикачен файл.
Пример
За да изпратите имейл с резултатите от заявка, използвайте @query
аргумент.
За да прикачите тези резултати като прикачен файл, използвайте @attach_query_result_as_file
аргумент. Това е приемливо бит стойност, като по подразбиране е 0
(без прикачен файл).
За да изпратите резултатите в прикачен файл, просто предоставете 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';
Този пример изпраща имейл с прикачени резултати като .txt файл. Името е генерирано автоматично от Database Mail.
По подразбиране максималният размер на прикачените файлове е 1 MB на файл, но можете да промените това с sysmail_configure_sp
съхранена процедура.
Посочете име за прикачения файл
Освен това имате възможност да предоставите собствено име за прикачения файл. Можете да направите това с @query_attachment_filename
аргумент.
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,
@query_attachment_filename = 'Artists.csv',
@subject = 'Query results as discussed';
Още опции
Ето още един пример, който разширява предишния. Тук включих редица опции, които може да ви бъдат полезни, когато изпращате резултати от заявка като прикачен файл към имейл.
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,
@query_attachment_filename = 'Artists.csv',
@query_result_header = 1,
@query_result_width = 256,
@query_result_separator = ',',
@exclude_query_output = 1,
@append_query_error = 1,
@query_no_truncate = 0,
@query_result_no_padding = 1,
@subject = 'Query results as discussed';
Някои от тях са зададени на тяхната стойност по подразбиране, а някои не. Например, промених @query_result_no_padding
до 1
за да премахнете подпълването от колоните. Използвах също @query_result_separator
за да промените разделителя от интервала по подразбиране на запетая.
sp_send_dbmail
процедурата приема повече аргументи, отколкото съм изброил тук. Вижте документацията на Microsoft за пълен списък с аргументи и техните описания.
Конфигуриране на поща от база данни
Примерите на тази страница предполагат, че вече сте активирали и конфигурирали Database Mail.
Ако не сте конфигурирали Database Mail, вижте Как да изпратите имейл от SQL Server. Тази статия предоставя примери за активиране и конфигуриране на Database Mail с T-SQL.