Envío de mensajes de correo electrónico con Database Mail - Amazon Relational Database Service

Envío de mensajes de correo electrónico con Database Mail

Utilice el procedimiento almacenado sp_send_dbmail para enviar mensajes de correo electrónico mediante Database Mail.

Uso

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]';

Se requieren los siguientes parámetros:

  • @profile_name – El nombre del perfil de Database Mail desde el que se va a enviar el mensaje.

  • @recipients – La lista delimitada por punto y coma de direcciones de correo electrónico a las que enviar el mensaje.

  • @subject – El asunto del mensaje.

  • @body – El cuerpo del mensaje. También puede usar una variable declarada como cuerpo.

Los siguientes parámetros son opcionales:

  • @body_format – Este parámetro se utiliza con una variable declarada para enviar un correo electrónico en formato HTML.

  • @file_attachments – La lista delimitada por punto y coma de archivos adjuntos de mensajes. Las rutas de archivo deben ser rutas absolutas.

  • @query – Una consulta SQL que se va a ejecutar. Los resultados de la consulta se pueden adjuntar como un archivo o incluirse en el cuerpo del mensaje.

  • @attach_query_result_as_file – Si se debe adjuntar el resultado de la consulta como un archivo. Establezca en 0 para no, 1 para sí. El valor predeterminado es 0.

Ejemplos

Los ejemplos siguientes muestran cómo enviar mensajes de correo electrónico.

ejemplo de enviar un mensaje a un único destinatario
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
ejemplo de enviar un mensaje a varios destinatarios
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
ejemplo de enviar un resultado de consulta SQL como un archivo adjunto
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
ejemplo de enviar un mensaje en formato 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
ejemplo de enviar un mensaje mediante un desencadenador cuando se produce un evento específico en la base de datos
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