In SQL Server puoi inviare e-mail utilizzando sp_send_dbmail
stored procedure in msdb Banca dati.
Una delle scelte che hai durante l'esecuzione di questa procedura è se includere o meno i risultati di una query.
Un'altra scelta che hai è se inviare o meno quei risultati in un allegato.
Esempio
Per inviare via email i risultati di una query, utilizza @query
argomento.
Per allegare quei risultati come allegato, usa il @attach_query_result_as_file
discussione. Questo accetta un bit valore, con il valore predefinito 0
(per nessun allegato).
Per inviare i risultati in allegato, è sufficiente fornire un 1
per questo argomento.
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';
Questo esempio invia un'email con i risultati allegati come .txt file. Il nome è stato generato automaticamente da Database Mail.
Per impostazione predefinita, la dimensione massima del file per gli allegati è 1 MB per file, ma puoi modificarla con sysmail_configure_sp
procedura memorizzata.
Fornire un nome per l'allegato
Hai anche la possibilità di fornire il tuo nome per l'allegato. Puoi farlo con il @query_attachment_filename
discussione.
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';
Più opzioni
Ecco un altro esempio che amplia il precedente. Qui, ho incluso una serie di opzioni che potresti trovare utili quando invii i risultati della query come allegato e-mail.
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';
Alcuni di questi sono impostati sul valore predefinito e altri no. Ad esempio, ho cambiato @query_result_no_padding
a 1
per rimuovere il riempimento all'interno delle colonne. Ho anche usato @query_result_separator
per cambiare il separatore dallo spazio predefinito a una virgola.
Il sp_send_dbmail
la procedura accetta più argomenti di quelli che ho elencato qui. Consulta la documentazione di Microsoft per un elenco completo degli argomenti e delle relative descrizioni.
Configurazione della posta database
Gli esempi in questa pagina presuppongono che tu abbia già abilitato e configurato Posta elettronica database.
Se non hai configurato Posta elettronica database, vedere Come inviare e-mail da SQL Server. Questo articolo fornisce esempi per abilitare e configurare Database Mail con T-SQL.