データベースメールを使用して E メールメッセージを送信するには、sp_send_dbmail
使用方法
EXEC msdb.dbo.sp_send_dbmail @profile_name = '
profile_name
', @recipients = 'recipient1@example.com
[;recipient2
; ...recipientn
]', @subject = 'subject
', @body = 'message_body
', [@body_format = 'HTML'], [@file_attachments = 'file_path1
;file_path2
; ...file_pathn
'], [@query = 'SQL_query'
], [@attach_query_result_as_file =0|1
]';
以下のパラメータは必須です。
-
@profile_name
– メッセージの送信元となるデータベースメールプロファイル名 -
@recipients
– メッセージの送信先となるセミコロン区切りの E メールアドレスリスト -
@subject
– メッセージの件名 -
@body
– メッセージの本文 宣言された変数を本文として使用することもできます。
以下のパラメータはオプションです。
-
@body_format
– このパラメータは、HTML 形式で E メールを送信するため、宣言された変数と共に使用します。 -
@file_attachments
– セミコロン区切りのメッセージ添付ファイルリスト。ファイルパスは絶対パスである必要があります。 -
@query
– 実行する SQL クエリ クエリ結果は、ファイルで添付することも、メッセージの本文に含めることもできます。 -
@attach_query_result_as_file
– クエリ結果をファイルでアタッチするかどうか。[いいえ] の場合は 0、[はい] の場合は 1 に設定します。デフォルトは 0 です。
例
次の例は、E メールメッセージを送信する方法をデモンストレーションします。
例 単一の受信者へのメッセージの送信の
USE msdb
GO
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Notifications',
@recipients = 'nobody@example.com',
@subject = 'Automated DBMail message - 1',
@body = 'Database Mail configuration was successful.';
GO
例 複数の受信者へのメッセージの送信の
USE msdb
GO
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Notifications',
@recipients = 'recipient1@example.com;recipient2@example.com',
@subject = 'Automated DBMail message - 2',
@body = 'This is a message.';
GO
例 添付ファイルでの SQL クエリ結果の送信の
USE msdb
GO
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Notifications',
@recipients = 'nobody@example.com',
@subject = 'Test SQL query',
@body = 'This is a SQL query test.',
@query = 'SELECT * FROM abc.dbo.test',
@attach_query_result_as_file = 1;
GO
例 HTML 形式でのメッセージの送信の
USE msdb
GO
DECLARE @HTML_Body as NVARCHAR(500) = 'Hi, <h4> Heading </h4> </br> See the report. <b> Regards </b>';
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Notifications',
@recipients = 'nobody@example.com',
@subject = 'Test HTML message',
@body = @HTML_Body,
@body_format = 'HTML';
GO
例 データベースで特定のイベントが発生した時の、トリガーを使用したメッセージの送信の
USE AdventureWorks2017
GO
IF OBJECT_ID ('Production.iProductNotification', 'TR') IS NOT NULL
DROP TRIGGER Purchasing.iProductNotification
GO
CREATE TRIGGER iProductNotification ON Production.Product
FOR INSERT
AS
DECLARE @ProductInformation nvarchar(255);
SELECT
@ProductInformation = 'A new product, ' + Name + ', is now available for $' + CAST(StandardCost AS nvarchar(20)) + '!'
FROM INSERTED i;
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Notifications',
@recipients = 'nobody@example.com',
@subject = 'New product information',
@body = @ProductInformation;
GO