SQL Server nám poskytuje možnost odesílat e-maily prostřednictvím řešení Database Mail. To zahrnuje spoustu uložených procedur, které usnadňují konfiguraci a odesílání e-mailů.
Chcete-li odeslat e-mail, použijte sp_send_dbmail
uložené procedury. Tento postup přijímá spoustu volitelných argumentů, z nichž jeden vám umožňuje odesílat přílohy.
Ve skutečnosti existují dva argumenty, které vám umožňují odesílat přílohy. Ten, který použijete, bude záviset na kontextu.
Jsou to:
@file_attachments
– Umožňuje určit soubor, který se má připojit k e-mailu.@attach_query_result_as_file
– To platí pouze v případě, že používáte také@query
poslat výsledky dotazu e-mailem.
Příklady níže.
Připojit soubor
@file_attachments
argument umožňuje zadat soubor, který se má připojit k e-mailu.
Zde je příklad:
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';
Hodnota musí zahrnovat absolutní cestu k souboru.
Ve výchozím nastavení je maximální velikost souboru 1 MB na soubor, ale můžete to změnit pomocí sysmail_configure_sp
uložená procedura.
Připojit více souborů
Můžete připojit více souborů tak, že každý název souboru oddělíte středníkem:
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';
Jak již bylo zmíněno, limit velikosti souboru platí pro každý soubor. Pokud je tedy limit velikosti souboru 1 MB, každý soubor v tomto příkladu může mít až 1 MB (výsledkem je celková velikost 2 MB pro obě přílohy dohromady).
Připojit výsledky dotazu
Můžete také použít Database Mail k odeslání výsledku dotazu e-mailem. To se provádí pomocí @query
argument. Ve výchozím nastavení jsou výsledky uvedeny v těle e-mailu, ale pokud chcete, můžete je přidat jako přílohu.
Chcete-li je přidat jako přílohu, nastavte @attach_query_result_as_file
argument s hodnotou 1
.
Zde je příklad odeslání výsledků dotazu jako přílohy:
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';
Při odesílání výsledků dotazu e-mailem máte k dispozici několik možností.
Můžete například použít @query_attachment_filename
zadejte název souboru (pokud není zadán, Database Mail jej vytvoří). Můžete také použít @query_result_header
argument k určení, zda jsou v dotazu zahrnuta záhlaví, a můžete použít @query_result_no_padding
argument k odstranění všech výplní, které jsou automaticky použity na výsledky.