Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment envoyer un e-mail HTML à partir de SQL Server (T-SQL)

La messagerie de base de données de SQL Server a une procédure stockée appelée sp_send_dbmail que vous pouvez utiliser pour envoyer des e-mails depuis SQL Server.

Par défaut, les e-mails sont envoyés sous forme de texte, mais vous pouvez facilement modifier cela afin qu'ils soient envoyés au format HTML.

Le @body_format l'argument est ce que vous utilisez pour passer au format HTML.

Exemple

Voici un exemple d'envoi d'un e-mail HTML.

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'Potential candidates for an <strong>Admin</strong> job, perhaps?',
    @body_format = 'HTML',
    @subject = 'As discussed';

La partie qui va @body_format = 'HTML' est ce qui envoie l'e-mail au format HTML.

Dans cet exemple, j'ai appliqué une quantité insignifiante de HTML. J'ai simplement joint le mot Admin dans <strong> Mots clés. Je l'ai gardé aussi simple que possible afin qu'il soit facile de lire l'exemple.

Enregistrer le HTML dans une variable

Dans l'exemple précédent, j'ai appliqué le code HTML directement au @body argument. Ce n'était pas vraiment un problème, étant donné la brièveté du contenu du corps. Mais c'est bien de séparer le code HTML du sp_send_dbmail procédure.

Pour ce faire, nous pouvons enregistrer le code HTML dans une variable, puis utiliser cette variable comme valeur pour le @body arguments.

Comme ceci :

DECLARE @body_content varchar(255);
SET @body_content = 'Potential candidates for an <strong>Admin</strong> job, perhaps?';

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = @body_content,
    @body_format = 'HTML',
    @subject = 'As discussed';

Pour une liste complète des éléments HTML, voir Balises HTML sur Quackit.