SQL Serverは、データベースメールソリューションを介して電子メールを送信する機能を提供します。これには、電子メールの構成と送信を容易にする一連のストアドプロシージャが含まれます。
メールを送信するには、sp_send_dbmail
を使用します ストアドプロシージャ。このプロシージャは、多数のオプションの引数を受け入れます。そのうちの1つを使用すると、添付ファイルを送信できます。
実際には、添付ファイルを送信できるようにする2つの引数があります。使用するものはコンテキストによって異なります。
それらは:
-
@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になります)。
クエリの結果を添付する
データベースメールを使用して、クエリの結果を電子メールで送信することもできます。これは@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
を使用できます ファイル名を指定します(指定されていない場合は、データベースメールがファイル名を構成します)。 @query_result_header
を使用することもできます ヘッダーをクエリに含めるかどうかを指定する引数。@query_result_no_padding
を使用できます。 結果に自動的に適用されるパディングを削除する引数。