IF EXISTS (SELECT * FROM sys.objects where object_id = OBJECT_ID(N'[aps_Send_Mail]') AND OBJECTPROPERTY(object_id,N'IsProcedure') = 1) DROP PROCEDURE [aps_Send_Mail] GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE PROCEDURE [aps_Send_Mail] @in_sender varchar(8000)= null, @in_sender_name varchar(8000) = null, @in_recipient varchar(8000) = null, @in_priority varchar(15) = null, @in_subject varchar(8000) = null, @in_message varchar(8000) = null, @in_message_file varchar(8000) = null, @in_attachments varchar(8000) = null, @in_server varchar(255) = null, @in_dbmail_profile_name varchar(255) = null AS /*=========================================================================== Procedure pour envoi d'un email via SMTP par execution de la SP "xp_smtp_sendmail". Pour rappel, la SP "xp_smtp_sendmail" n'est pas une SP officielle de Microsoft ! Des lors, il n'y a aucune garantie que cette SP fonctionne avec les versions futures de SQL Server ! ==> Voir modif. de CMA du 07.02.07 !! Parametres: @in_sender = adresse email de l'expediteur (ex: "cm@bmc.ch") (--> version SQL 2000 only) @in_sender_name (or NULL) = nom de l'expediteur (ex: "Christophe Marchand") (--> version SQL 2000 only) @in_recipient = adresse email du destinataire (ex: "info@bmc.ch") @in_priority (or NULL) = priorite (valeurs possibles: "LOW, NORMAL, HIGH") @in_subject (or NULL) = sujet du message @in_message (or NULL) = corps du message @in_message_file (or NULL) = corps du message contenu dans un fichier @in_attachments (or NULL) = pieces jointes (file1;file2;file3) @in_server = nom du serveur par lequel doit transiter l'email (--> version SQL 2000 only) @in_dbmail_profile_name = nom du profil de "Database Mail" a utiliser (--> version SQL 2005 only) Creation: 19.11.04 / chris Modifications : 01.12.04 / chris : Traitement des parametres "@in_message_file" et "@in_attachments" 07.03.07 / chris : Adaptation de la SP pour SQL 2005. (#cm01) La SP "xp_smtp_sendmail" n'etant plus compatible sous SQL 2005, j'utilise a la place "Database Mail" de SQL 2005, ainsi que la SP fournie par Microsoft "sp_send_dbmail". 06.07.07 / chris : Adaptation du commentaire d'un parametre ci-dessus 07.09.07 / chris : Adaptation commentaires ci-dessus 17.03.20 / FLA : Suppression version SQL 2000 09.02.21 / SPE : #TFS62610# - Update all mail configurations to avoid SPAM ============================================================================*/ set nocount on declare @result_sp INT, @errno INT, @errmsg VARCHAR(255), @Mailsubject VARCHAR(255) /*--------------- Remplacement des empty strings par des null ---------------*/ if @in_recipient = '' select @in_recipient = null if @in_priority = '' select @in_priority = null if @in_subject = '' select @in_subject = null if @in_message = '' select @in_message = null if @in_message_file = '' select @in_message_file = null if @in_attachments = '' select @in_attachments = null if @in_dbmail_profile_name = '' /* #cm01 */ select @in_dbmail_profile_name = null /*-------------------------- Version de SQL Server --------------------------*/ /*------------------------ Test des parametres input ------------------------*/ if (@in_dbmail_profile_name is null) /* #cm01 */ or @in_recipient is null begin select @errno = 70003, @errmsg = '(APS) Invalid input parameters !' goto error_99 end /*----------------------------- Valeurs par defaut --------------------------*/ if @in_priority is null select @in_priority = 'NORMAL' /*--------------- Execution de la SP pour envoi de l'email SMTP -------------*/ /* La SP "sp_send_dbmail" ne permet pas d'inclure un fichier dans le corps du message. De ce fait, je l'ajoute en tant que piece jointe. */ if @in_message_file is not null select @in_attachments = @in_message_file + ';' + @in_attachments set @Mailsubject = @in_subject + ' - [' + @@SERVERNAME + ']' exec @result_sp = msdb.dbo.sp_send_dbmail @profile_name = @in_dbmail_profile_name, @recipients = @in_recipient, @subject = @Mailsubject, @importance = @in_priority, @body = @in_message, @file_attachments = @in_attachments if @result_sp <> 0 begin select @errno = 70003, @errmsg = '(APS) Error executing sp_send_dbmail in aps_Send_Mail !' goto error_99 end /*------------------------- Retour a la SP appelante ------------------------*/ return(@@error) /*-------------------------- Traitement des erreurs -------------------------*/ error_99: raiserror (@errmsg, 16, 1) return(@errno) GO