sp_send_dbmail (Transact-SQL)sp_send_dbmail (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database (Managed Instance uniquement) nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Envoie un message électronique aux destinataires spécifiés.Sends an e-mail message to the specified recipients. Le message peut comprendre un ensemble de résultats de requête et des fichiers joints.The message may include a query result set, file attachments, or both. Lorsque les messages sont placés dans la file d’attente Database Mail, sp_send_dbmail retourne le mailitem_id du message.When mail is successfully placed in the Database Mail queue, sp_send_dbmail returns the mailitem_id of the message. Cette procédure stockée se trouve dans la base de données msdb .This stored procedure is in the msdb database.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

  
sp_send_dbmail [ [ @profile_name = ] 'profile_name' ]  
    [ , [ @recipients = ] 'recipients [ ; ...n ]' ]  
    [ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ]  
    [ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ]  
    [ , [ @from_address = ] 'from_address' ]  
    [ , [ @reply_to = ] 'reply_to' ]   
    [ , [ @subject = ] 'subject' ]   
    [ , [ @body = ] 'body' ]   
    [ , [ @body_format = ] 'body_format' ]  
    [ , [ @importance = ] 'importance' ]  
    [ , [ @sensitivity = ] 'sensitivity' ]  
    [ , [ @file_attachments = ] 'attachment [ ; ...n ]' ]  
    [ , [ @query = ] 'query' ]  
    [ , [ @execute_query_database = ] 'execute_query_database' ]  
    [ , [ @attach_query_result_as_file = ] attach_query_result_as_file ]  
    [ , [ @query_attachment_filename = ] query_attachment_filename ]  
    [ , [ @query_result_header = ] query_result_header ]  
    [ , [ @query_result_width = ] query_result_width ]  
    [ , [ @query_result_separator = ] 'query_result_separator' ]  
    [ , [ @exclude_query_output = ] exclude_query_output ]  
    [ , [ @append_query_error = ] append_query_error ]  
    [ , [ @query_no_truncate = ] query_no_truncate ]   
    [ , [ @query_result_no_padding = ] @query_result_no_padding ]   
    [ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]  

ArgumentsArguments

[ @profile_name = ] 'profile_name' est le nom du profil à partir duquel envoyer le message.[ @profile_name = ] 'profile_name' Is the name of the profile to send the message from. Profile_name est de type sysname, avec NULL comme valeur par défaut.The profile_name is of type sysname, with a default of NULL. Profile_name doit être le nom d’un profil de Database mail existant.The profile_name must be the name of an existing Database Mail profile. Quand aucun profile_name n’est spécifié, sp_send_dbmail utilise le profil privé par défaut pour l’utilisateur actuel.When no profile_name is specified, sp_send_dbmail uses the default private profile for the current user. Si l’utilisateur n’a pas de profil privé par défaut, sp_send_dbmail utilise le profil public par défaut pour la base de données msdb .If the user does not have a default private profile, sp_send_dbmail uses the default public profile for the msdb database. Si l’utilisateur n’a pas de profil privé par défaut et qu’il n’existe pas de profil public par défaut pour la base de données, @profile_name doit être spécifié.If the user does not have a default private profile and there is no default public profile for the database, @profile_name must be specified.

[ @recipients = ] 'recipients' est une liste délimitée par des points-virgules des adresses de messagerie auxquelles envoyer le message.[ @recipients = ] 'recipients' Is a semicolon-delimited list of e-mail addresses to send the message to. La liste des destinataires est de type varchar (max) .The recipients list is of type varchar(max). Bien que ce paramètre soit facultatif, au moins l’un des @recipients, @copy_recipientsou @blind_copy_recipients doit être spécifié, ou sp_send_dbmail retourne une erreur.Although this parameter is optional, at least one of @recipients, @copy_recipients, or @blind_copy_recipients must be specified, or sp_send_dbmail returns an error.

[ @copy_recipients = ] 'copy_recipients' est une liste délimitée par des points-virgules des adresses de messagerie auxquelles le message est copié.[ @copy_recipients = ] 'copy_recipients' Is a semicolon-delimited list of e-mail addresses to carbon copy the message to. La liste des destinataires de copie est de type varchar (max) .The copy recipients list is of type varchar(max). Bien que ce paramètre soit facultatif, au moins l’un des @recipients, @copy_recipientsou @blind_copy_recipients doit être spécifié, ou sp_send_dbmail retourne une erreur.Although this parameter is optional, at least one of @recipients, @copy_recipients, or @blind_copy_recipients must be specified, or sp_send_dbmail returns an error.

[ @blind_copy_recipients = ] 'blind_copy_recipients' est une liste délimitée par des points-virgules des adresses de messagerie de copie carbone invisible du message.[ @blind_copy_recipients = ] 'blind_copy_recipients' Is a semicolon-delimited list of e-mail addresses to blind carbon copy the message to. La liste des destinataires de la copie aveugle est de type varchar (max) .The blind copy recipients list is of type varchar(max). Bien que ce paramètre soit facultatif, au moins l’un des @recipients, @copy_recipientsou @blind_copy_recipients doit être spécifié, ou sp_send_dbmail retourne une erreur.Although this parameter is optional, at least one of @recipients, @copy_recipients, or @blind_copy_recipients must be specified, or sp_send_dbmail returns an error.

[ @from_address = ] 'from_address' est la valeur de l' « adresse de l’adresse » du message électronique.[ @from_address = ] 'from_address' Is the value of the 'from address' of the email message. Il s'agit d'un paramètre optionnel utilisé pour remplacer les paramètres dans le profil de messagerie.This is an optional parameter used to override the settings in the mail profile. Ce paramètre est de type varchar (max) .This parameter is of type varchar(MAX). Les paramètres de sécurité SMTP déterminent si ces substitutions sont acceptées.SMTP security settings determine if these overrides are accepted. Si aucun paramètre n'est spécifié, la valeur par défaut est NULL.If no parameter is specified, the default is NULL.

[ @reply_to = ] 'reply_to' est la valeur de l’adresse de réponse du message électronique.[ @reply_to = ] 'reply_to' Is the value of the 'reply to address' of the email message. Une seule adresse de messagerie est acceptée comme valeur valide.It accepts only one email address as a valid value. Il s'agit d'un paramètre optionnel utilisé pour remplacer les paramètres dans le profil de messagerie.This is an optional parameter used to override the settings in the mail profile. Ce paramètre est de type varchar (max) .This parameter is of type varchar(MAX). Les paramètres de sécurité SMTP déterminent si ces substitutions sont acceptées.SMTP security settings determine if these overrides are accepted. Si aucun paramètre n'est spécifié, la valeur par défaut est NULL.If no parameter is specified, the default is NULL.

[ @subject = ] 'subject' est l’objet du message électronique.[ @subject = ] 'subject' Is the subject of the e-mail message. L’objet est de type nvarchar (255) .The subject is of type nvarchar(255). Si l'objet est omis, « Message SQL Server » est la valeur par défaut.If no subject is specified, the default is 'SQL Server Message'.

[ @body = ] 'body' est le corps du message électronique.[ @body = ] 'body' Is the body of the e-mail message. Le corps du message est de type nvarchar (max) , avec NULL comme valeur par défaut.The message body is of type nvarchar(max), with a default of NULL.

[ @body_format = ] 'body_format' est le format du corps du message.[ @body_format = ] 'body_format' Is the format of the message body. Le paramètre est de type varchar (20) , avec NULL comme valeur par défaut.The parameter is of type varchar(20), with a default of NULL. Lorsqu'il est spécifié, les en-têtes du message sortant sont définis pour indiquer le format choisi pour le corps de message.When specified, the headers of the outgoing message are set to indicate that the message body has the specified format. Il peut contenir l'une des valeurs suivantes :The parameter may contain one of the following values:

  • TEXTTEXT

  • HTMLHTML

La valeur par défaut est TEXT.Defaults to TEXT.

[ @importance = ] 'importance' est l’importance du message.[ @importance = ] 'importance' Is the importance of the message. Le paramètre est de type varchar (6) .The parameter is of type varchar(6). Il peut contenir l'une des valeurs suivantes :The parameter may contain one of the following values:

  • FaibleLow

  • NormaleNormal

  • ÉlevéHigh

La valeur par défaut est Normal.Defaults to Normal.

[ @sensitivity = ] 'sensitivity' est la sensibilité du message.[ @sensitivity = ] 'sensitivity' Is the sensitivity of the message. Le paramètre est de type varchar (12) .The parameter is of type varchar(12). Il peut contenir l'une des valeurs suivantes :The parameter may contain one of the following values:

  • NormaleNormal

  • PersonalPersonal

  • PrivéPrivate

  • ConfidentialConfidential

La valeur par défaut est Normal.Defaults to Normal.

[ @file_attachments = ] 'file_attachments' est une liste délimitée par des points-virgules des noms de fichiers à joindre au message électronique.[ @file_attachments = ] 'file_attachments' Is a semicolon-delimited list of file names to attach to the e-mail message. Les fichiers de la liste doivent être spécifiés sous forme de chemins d'accès absolus.Files in the list must be specified as absolute paths. La liste des pièces jointes est de type nvarchar (max) .The attachments list is of type nvarchar(max). Par défaut, la messagerie de base de données limite la taille des pièces jointes à 1 Mo par fichier.By default, Database Mail limits file attachments to 1 MB per file.

Important

Ce paramètre n’est pas disponible dans Azure SQL Managed Instance, car il ne peut pas accéder au système de fichiers local.This parameter is not available in Azure SQL Managed Instance because it cannot access local file system.

[ @query = ] 'query' est une requête à exécuter.[ @query = ] 'query' Is a query to execute. Les résultats de la requête sont inclus dans le corps du message électronique ou attachés comme pièce jointe.The results of the query can be attached as a file, or included in the body of the e-mail message. La requête est de type nvarchar (max) et peut contenir n’importe quelle instruction Transact-SQLTransact-SQL valide.The query is of type nvarchar(max), and can contain any valid Transact-SQLTransact-SQL statements. Notez que la requête est exécutée dans une session distincte, de sorte que les variables locales du script appelant sp_send_dbmail ne sont pas disponibles pour la requête.Note that the query is executed in a separate session, so local variables in the script calling sp_send_dbmail are not available to the query.

[ @execute_query_database = ] 'execute_query_database' est le contexte de base de données dans lequel la procédure stockée exécute la requête.[ @execute_query_database = ] 'execute_query_database' Is the database context within which the stored procedure runs the query. Le paramètre est de type sysname, avec la valeur par défaut de la base de données actuelle.The parameter is of type sysname, with a default of the current database. Ce paramètre s’applique uniquement si @query est spécifié.This parameter is only applicable if @query is specified.

[ @attach_query_result_as_file = ] attach_query_result_as_file spécifie si le jeu de résultats de la requête est retourné sous la forme d’un fichier joint.[ @attach_query_result_as_file = ] attach_query_result_as_file Specifies whether the result set of the query is returned as an attached file. attach_query_result_as_file est de type bit, avec 0 comme valeur par défaut.attach_query_result_as_file is of type bit, with a default of 0.

Lorsque la valeur est 0, les résultats de la requête sont inclus dans le corps du message électronique, après le contenu du paramètre @body .When the value is 0, the query results are included in the body of the e-mail message, after the contents of the @body parameter. Lorsque la valeur est 1, les résultats sont retournés comme pièce jointe.When the value is 1, the results are returned as an attachment. Ce paramètre s’applique uniquement si @query est spécifié.This parameter is only applicable if @query is specified.

[ @query_attachment_filename = ] query_attachment_filename spécifie le nom de fichier à utiliser pour le jeu de résultats de la pièce jointe de la requête.[ @query_attachment_filename = ] query_attachment_filename Specifies the file name to use for the result set of the query attachment. query_attachment_filename est de type nvarchar (255) , avec NULL comme valeur par défaut.query_attachment_filename is of type nvarchar(255), with a default of NULL. Ce paramètre est ignoré lorsque attach_query_result a la valeur 0.This parameter is ignored when attach_query_result is 0. Lorsque attach_query_result est 1 et que ce paramètre a la valeur NULL, Database mail crée un nom de fichier arbitraire.When attach_query_result is 1 and this parameter is NULL, Database Mail creates an arbitrary filename.

[ @query_result_header = ] query_result_header spécifie si les résultats de la requête incluent des en-têtes de colonnes.[ @query_result_header = ] query_result_header Specifies whether the query results include column headers. La valeur query_result_header est de type bit.The query_result_header value is of type bit. Lorsque la valeur est 1, les résultats de la requête contiennent des en-têtes de colonne,When the value is 1, query results contain column headers. et lorsque la valeur est 0, les résultats n'incluent aucun en-tête de colonne.When the value is 0, query results do not include column headers. La valeur par défaut de ce paramètre est 1.This parameter defaults to 1. Ce paramètre s’applique uniquement si @query est spécifié.This parameter is only applicable if @query is specified.

Notes

L’erreur suivante peut se produire lors de la définition de @query_result_header sur 0 et la définition de @query_no_truncate sur 1 :The following error may occur when setting @query_result_header to 0 and setting @query_no_truncate to 1:
MSG 22050, niveau 16, état 1, ligne 12 : Échec de l’initialisation de la bibliothèque sqlcmd avec le numéro d’erreur-2147024809.Msg 22050, Level 16, State 1, Line 12: Failed to initialize sqlcmd library with error number -2147024809.

[ @query_result_width = ] query_result_width est la largeur de ligne, en caractères, à utiliser pour mettre en forme les résultats de la requête.[ @query_result_width = ] query_result_width Is the line width, in characters, to use for formatting the results of the query. Query_result_width est de type int, avec 256 comme valeur par défaut.The query_result_width is of type int, with a default of 256. La valeur fournie doit être comprise entre 10 et 32767.The value provided must be between 10 and 32767. Ce paramètre s’applique uniquement si @query est spécifié.This parameter is only applicable if @query is specified.

[ @query_result_separator = ] 'query_result_separator' est le caractère utilisé pour séparer les colonnes dans le résultat de la requête.[ @query_result_separator = ] 'query_result_separator' Is the character used to separate columns in the query output. Le séparateur est de type char (1) .The separator is of type char(1). La valeur par défaut est ' ' (espace).Defaults to ' ' (space).

[ @exclude_query_output = ] exclude_query_output spécifie s’il faut retourner la sortie de l’exécution de la requête dans le message électronique.[ @exclude_query_output = ] exclude_query_output Specifies whether to return the output of the query execution in the e-mail message. exclude_query_output est de valeur de bit, avec 0 comme valeur par défaut.exclude_query_output is bit, with a default of 0. Lorsque ce paramètre a la valeur 0, l’exécution de la procédure stockée sp_send_dbmail imprime le message retourné à la suite de l’exécution de la requête sur la console.When this parameter is 0, the execution of the sp_send_dbmail stored procedure prints the message returned as the result of the query execution on the console. Lorsque ce paramètre est 1, l’exécution de la procédure stockée sp_send_dbmail n’imprime aucun des messages d’exécution de la requête sur la console.When this parameter is 1, the execution of the sp_send_dbmail stored procedure does not print any of the query execution messages on the console.

[ @append_query_error = ] append_query_error spécifie s’il faut envoyer le message électronique lorsqu’une erreur est retournée à partir de la requête spécifiée dans l’argument @query .[ @append_query_error = ] append_query_error Specifies whether to send the e-mail when an error returns from the query specified in the @query argument. append_query_error est de valeur de bit, avec 0 comme valeur par défaut.append_query_error is bit, with a default of 0. Lorsque la valeur de ce paramètre est 1, la messagerie de base de données envoie le message électronique et inclut le message d'erreur de la requête dans le corps du message.When this parameter is 1, Database Mail sends the e-mail message and includes the query error message in the body of the e-mail message. Lorsque ce paramètre a la valeur 0, Database Mail n’envoie pas le message électronique et sp_send_dbmail se termine par le code de retour 1, ce qui indique un échec.When this parameter is 0, Database Mail does not send the e-mail message, and sp_send_dbmail ends with return code 1, indicating failure.

[ @query_no_truncate = ] query_no_truncate indique si la requête doit être exécutée avec l’option qui évite la troncation des types de données de longueur variable volumineuses (varchar (max) , nvarchar (max) , varbinary (max) , XML, Text, ntext, image , et les types de données définis par l’utilisateur).[ @query_no_truncate = ] query_no_truncate Specifies whether to execute the query with the option that avoids truncation of large variable length data types (varchar(max), nvarchar(max), varbinary(max), xml, text, ntext, image, and user-defined data types). Lorsqu'ils sont définis, les résultats de requête n'incluent pas les en-têtes de colonne.When set, query results do not include column headers. La valeur query_no_truncate est de type bit.The query_no_truncate value is of type bit. Lorsque la valeur est définie à 0 ou lorsqu'elle n'est pas spécifiée, les colonnes de la requête sont limitées à 256 caractères,When the value is 0 or not specified, columns in the query truncate to 256 characters. si elle est définie à 1, les colonnes ne sont pas tronquées.When the value is 1, columns in the query are not truncated. La valeur par défaut de ce paramètre est 0.This parameter defaults to 0.

Notes

Lorsqu’elle est utilisée avec de grandes quantités de données, l’option @query_no_truncate consomme des ressources supplémentaires et peut ralentir les performances du serveur.When used with large amounts of data, the @query_no_truncate option consumes additional resources and can slow server performance.

[ @query_result_no_padding ] @query_result_no_padding le type est bit.[ @query_result_no_padding ] @query_result_no_padding The type is bit. La valeur par défaut est 0.The default is 0. Lorsque vous affectez la valeur 1 à, les résultats de la requête ne sont pas remplis, ce qui réduit éventuellement la taille du fichier. Si vous affectez la valeur 1 à @query_result_no_padding et que vous définissez le paramètre @query_result_width, le paramètre @query_result_no_padding remplace le paramètre @query_result_width.When you set to 1, the query results are not padded, possibly reducing the file size.If you set @query_result_no_padding to 1 and you set the @query_result_width parameter, the @query_result_no_padding parameter overwrites the @query_result_width parameter.

Dans ce cas, aucune erreur ne se produit.In this case no error occurs.

Notes

L’erreur suivante peut se produire lors de l’affectation de la valeur 1 à @query_result_no_padding et de la fourniture d’un paramètre pour @query_no_truncate :The following error may occur when setting @query_result_no_padding to 1 and providing a parameter for @query_no_truncate:
MSG 22050, niveau 16, état 1, ligne 0 : Impossible d’exécuter la requête, car les options @query_result_no_append et @query_no_truncate s’excluent mutuellement.Msg 22050, Level 16, State 1, Line 0: Failed to execute the query because the @query_result_no_append and @query_no_truncate options are mutually exclusive.

Si vous affectez la valeur 1 à la @query_result_no_padding et que vous définissez le paramètre @query_no_truncate, une erreur est générée.If you set the @query_result_no_padding to 1 and you set the @query_no_truncate parameter, an error is raised.

[ @mailitem_id = ] mailitem_id [ OUTPUT ] paramètre de sortie facultatif retourne le mailitem_id du message.[ @mailitem_id = ] mailitem_id [ OUTPUT ] Optional output parameter returns the mailitem_id of the message. Mailitem_id est de type int.The mailitem_id is of type int.

Valeurs des codes de retourReturn Code Values

Un code de retour de 0 indique le succès.A return code of 0 means success. Une autre valeur signifie l'échec.Any other value means failure. Le code d’erreur de l’instruction qui a échoué est stocké dans la variable @ @ no__t-1ERROR.The error code for the statement that failed is stored in the @@ERROR variable.

Jeux de résultatsResult Sets

En cas de succès, le message « Courrier en file d'attente » est renvoyé.On success, returns the message "Mail queued."

NotesRemarks

Avant de pouvoir utiliser, Database Mail doit être activé à l’aide de l’Assistant Configuration de Database Mail ou de sp_configure.Before use, Database Mail must be enabled using the Database Mail Configuration Wizard, or sp_configure.

sysmail_stop_sp arrête Database mail en arrêtant les objets Service Broker utilisés par le programme externe.sysmail_stop_sp stops Database Mail by stopping the Service Broker objects that the external program uses. sp_send_dbmail accepte toujours le courrier lorsque Database mail est arrêté à l’aide de sysmail_stop_sp.sp_send_dbmail still accepts mail when Database Mail is stopped using sysmail_stop_sp. Pour démarrer Database Mail, utilisez sysmail_start_sp.To start Database Mail, use sysmail_start_sp.

Lorsque @profile n’est pas spécifié, sp_send_dbmail utilise un profil par défaut.When @profile is not specified, sp_send_dbmail uses a default profile. Si l'utilisateur expéditeur du message électronique a un profil privé par défaut, la messagerie de base de données utilise ce profil.If the user sending the e-mail message has a default private profile, Database Mail uses that profile. Si l’utilisateur n’a pas de profil privé par défaut, sp_send_dbmail utilise le profil public par défaut.If the user has no default private profile, sp_send_dbmail uses the default public profile. S’il n’existe pas de profil privé par défaut pour l’utilisateur et aucun profil public par défaut, sp_send_dbmail retourne une erreur.If there is no default private profile for the user and no default public profile, sp_send_dbmail returns an error.

sp_send_dbmail ne prend pas en charge les messages électroniques sans contenu.sp_send_dbmail does not support e-mail messages with no content. Pour envoyer un message électronique, vous devez spécifier au moins l’un des @body, @query, @file_attachmentsou @subject.To send an e-mail message, you must specify at least one of @body, @query, @file_attachments, or @subject. Sinon, sp_send_dbmail retourne une erreur.Otherwise, sp_send_dbmail returns an error.

La messagerie de base de données utilise le contexte de sécurité MicrosoftMicrosoft Windows de l'utilisateur actuel pour contrôler l'accès aux fichiers.Database Mail uses the MicrosoftMicrosoft Windows security context of the current user to control access to files. Par conséquent, les utilisateurs authentifiés avec l’authentification SQL ServerSQL Server ne peuvent pas joindre de fichiers à l’aide de @file_attachments.Therefore, users who are authenticated with SQL ServerSQL Server Authentication cannot attach files using @file_attachments. Windows n'autorise pas SQL ServerSQL Server à fournir des informations d'identification d'un ordinateur distant à un autre.Windows does not allow SQL ServerSQL Server to provide credentials from a remote computer to another remote computer. De cette façon, la messagerie de base de données ne peut pas joindre de fichiers aux messages depuis un partage réseau lorsque la commande est exécutée par un ordinateur autre que celui sur lequel SQL ServerSQL Server s'exécute.Therefore, Database Mail may not be able to attach files from a network share in cases where the command is run from a computer other than the computer that SQL ServerSQL Server runs on.

Si @query et @file_attachments sont spécifiés et que le fichier est introuvable, la requête est toujours exécutée, mais le message électronique n’est pas envoyé.If both @query and @file_attachments are specified and the file cannot be found, the query is still executed but the e-mail is not sent.

Lorsqu'une requête est spécifiée, l'ensemble de résultats se présente sous la forme d'un texte inséré.When a query is specified, the result set is formatted as inline text. Les données binaires contenues dans le résultat sont envoyées au format hexadécimal.Binary data in the result is sent in hexadecimal format.

Les paramètres @recipients, @copy_recipientset @blind_copy_recipients sont des listes délimitées par des points-virgules des adresses de messagerie.The parameters @recipients, @copy_recipients, and @blind_copy_recipients are semicolon-delimited lists of e-mail addresses. Au moins un de ces paramètres doit être fourni, ou sp_send_dbmail retourne une erreur.At least one of these parameters must be provided, or sp_send_dbmail returns an error.

Lors de l’exécution de sp_send_dbmail sans contexte de transaction, Database mail démarre et valide une transaction implicite.When executing sp_send_dbmail without a transaction context, Database Mail starts and commits an implicit transaction. Lors de l’exécution de sp_send_dbmail à partir d’une transaction existante, Database mail s’appuie sur l’utilisateur pour valider ou annuler les modifications.When executing sp_send_dbmail from within an existing transaction, Database Mail relies on the user to either commit or roll back any changes. Aucune transaction interne n'est lancée.It does not start an inner transaction.

AutorisationsPermissions

Les autorisations d’exécution pour sp_send_dbmail sont définies par défaut sur tous les membres du rôle de base de données DatabaseMailUser dans la base de données msdb .Execute permissions for sp_send_dbmail default to all members of the DatabaseMailUser database role in the msdb database. Toutefois, lorsque l’utilisateur qui envoie le message n’a pas l’autorisation d’utiliser le profil pour la demande, sp_send_dbmail retourne une erreur et n’envoie pas le message.However, when the user sending the message does not have permission to use the profile for the request, sp_send_dbmail returns an error and does not send the message.

ExemplesExamples

R.A. Envoi d'un message électroniqueSending an e-mail message

Cet exemple envoie un message électronique à votre ami à l’aide de l’adresse de messagerie myfriend@Adventure-Works.com.This example sends an e-mail message to your friend using the e-mail address myfriend@Adventure-Works.com. Le message a comme objet Automated Success Message.The message has the subject Automated Success Message. Le corps du message contient la phrase 'The stored procedure finished successfully'.The body of the message contains the sentence 'The stored procedure finished successfully'.

EXEC msdb.dbo.sp_send_dbmail  
    @profile_name = 'Adventure Works Administrator',  
    @recipients = 'yourfriend@Adventure-Works.com',  
    @body = 'The stored procedure finished successfully.',  
    @subject = 'Automated Success Message' ;  

B.B. Envoi d'un message électronique avec les résultats d'une requêteSending an e-mail message with the results of a query

Cet exemple envoie un message électronique à votre ami à l’aide de l’adresse de messagerie yourfriend@Adventure-Works.com.This example sends an e-mail message to your friend using the e-mail address yourfriend@Adventure-Works.com. Le message a comme objet Work Order Count et exécute une requête qui affiche le nombre d'ordres de travail pour lesquels une date DueDate ne dépasse pas le 30 avril 2004 de plus de deux jours.The message has the subject Work Order Count, and executes a query that shows the number of work orders with a DueDate less than two days after April 30, 2004. La messagerie de base de données joint le résultat au courrier sous la forme d'un fichier texte.Database Mail attaches the result as a text file.

EXEC msdb.dbo.sp_send_dbmail  
    @profile_name = 'Adventure Works Administrator',  
    @recipients = 'yourfriend@Adventure-Works.com',  
    @query = 'SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder  
                  WHERE DueDate > ''2004-04-30''  
                  AND  DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,  
    @subject = 'Work Order Count',  
    @attach_query_result_as_file = 1 ;  

C.C. Envoi d'un message électronique au format HTMLSending an HTML e-mail message

Cet exemple envoie un message électronique à votre ami à l’aide de l’adresse de messagerie yourfriend@Adventure-Works.com.This example sends an e-mail message to your friend using the e-mail address yourfriend@Adventure-Works.com. Le message a comme objet Work Order List et affiche un document HTML montrant les ordres de travail pour lesquels la valeur de DueDate ne dépasse pas le 30 avril 2004 de plus de deux jours.The message has the subject Work Order List, and contains an HTML document that shows the work orders with a DueDate less than two days after April 30, 2004. La messagerie de base de données envoie le message au format HTML.Database Mail sends the message in HTML format.

DECLARE @tableHTML  NVARCHAR(MAX) ;  
  
SET @tableHTML =  
    N'<H1>Work Order Report</H1>' +  
    N'<table border="1">' +  
    N'<tr><th>Work Order ID</th><th>Product ID</th>' +  
    N'<th>Name</th><th>Order Qty</th><th>Due Date</th>' +  
    N'<th>Expected Revenue</th></tr>' +  
    CAST ( ( SELECT td = wo.WorkOrderID,       '',  
                    td = p.ProductID, '',  
                    td = p.Name, '',  
                    td = wo.OrderQty, '',  
                    td = wo.DueDate, '',  
                    td = (p.ListPrice - p.StandardCost) * wo.OrderQty  
              FROM AdventureWorks.Production.WorkOrder as wo  
              JOIN AdventureWorks.Production.Product AS p  
              ON wo.ProductID = p.ProductID  
              WHERE DueDate > '2004-04-30'  
                AND DATEDIFF(dd, '2004-04-30', DueDate) < 2   
              ORDER BY DueDate ASC,  
                       (p.ListPrice - p.StandardCost) * wo.OrderQty DESC  
              FOR XML PATH('tr'), TYPE   
    ) AS NVARCHAR(MAX) ) +  
    N'</table>' ;  
  
EXEC msdb.dbo.sp_send_dbmail @recipients='yourfriend@Adventure-Works.com',  
    @subject = 'Work Order List',  
    @body = @tableHTML,  
    @body_format = 'HTML' ;  

Voir aussiSee Also

Messagerie de base de données Database Mail
Objets de Configuration Database Mail Database Mail Configuration Objects
Procédures (stockées Database mail Transact-SQL) Database Mail Stored Procedures (Transact-SQL)
sp_addrolemember (Transact-SQL)sp_addrolemember (Transact-SQL)