Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
L'une des solutions consiste à écrire une procédure stockée faisant appel
à CDO par les procédures sp_OACreate ...
Voici un petit exemple d'une procédure écrite il y a quelque temps :
--------------------------------------------------------------------------
-- Script created in November 25 2003 by Arnaud CLERET --
-- This store procedure allow to send a mail without a mappy profil --
--------------------------------------------------------------------------
USE master
GO
DECLARE @WithLogEvent VARCHAR(5)
DECLARE @ReplaceMessage VARCHAR(7)
SET @WithLogEvent = 'false'
SET @ReplaceMessage = 'REPLACE'
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext = N'Error
during sending mail (Source : %s --- Description : %s).', @lang =
'us_english', @with_log = @WithLogEvent, @replace = @ReplaceMessage
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext = N'Erreur
lors de l''envoie du mail (Source : %1! --- Description : %2!)', @lang =
'French', @with_log = @WithLogEvent, @replace = @ReplaceMessage
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_sendMail
(
@MailFrom VARCHAR(50) = @@SERVERNAME,
@MailTo VARCHAR(255) = '',
@MailCc VARCHAR(255) = NULL,
@MailBcc VARCHAR(255) = NULL,
@MailSubject VARCHAR(500) = NULL,
@MailBody VARCHAR(8000) = NULL,
@IsHTMLBody BIT = 0,
@FilesAttachments VARCHAR(8000) = NULL,
@FilesAttachmentsDelimiter CHAR(1) = ';',
@SendUsing CHAR(1) = '2',
@SMTPServerName VARCHAR(15) = '192.168.0.1',
@SMTPServerPort VARCHAR(5) = '25'
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @FilePath VARCHAR(255)
DECLARE @StatusRetour INT
DECLARE @CdoObject INT
DECLARE @ErrorSource NVARCHAR(255)
DECLARE @ErrorDescription NVARCHAR(500)
EXECUTE @StatusRetour = sp_OACreate 'CDO.Message', @CdoObject OUTPUT
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'From', @MailFrom
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'To', @MailTo
IF (@StatusRetour <> 0) GOTO ErrorHandler
IF(@MailCc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Cc', @MailCc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBcc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Bcc', @MailBcc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailSubject IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Subject',
@MailSubject
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBody IS NOT NULL)
BEGIN
IF(@IsHTMLBody = 0)EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'TextBody', @MailBody
ELSE EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'HTMLBody',
@MailBody
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF (@FilesAttachments IS NOT NULL)
BEGIN
SET @FilesAttachments = LTrim(RTrim(@FilesAttachments))
WHILE(DATALENGTH(@FilesAttachments) > 0)
BEGIN
IF(CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments) > 0)
BEGIN
SET @FilePath = SUBSTRING(@FilesAttachments,1,
CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments)-1)
SET @FilesAttachments =
LTrim(Right(@FilesAttachments,DATALENGTH(@FilesAttachments) -
DATALENGTH(@FilePath + @FilesAttachmentsDelimiter)))
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
END
ELSE
BEGIN
SET @FilePath = @FilesAttachments
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
BREAK
END
END
END
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value',
@SendUsing
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value',
@SMTPServerName
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value',
@SMTPServerPort
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject,
'Configuration.Fields.Update'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'Send'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE sp_OADestroy @CdoObject
RETURN
ErrorHandler:
EXECUTE @StatusRetour = sp_OAGetErrorInfo @CdoObject, @ErrorSource OUT,
@ErrorDescription OUT
IF (@StatusRetour = 0)RAISERROR (50001, 16, 1, @ErrorSource,
@ErrorDescription)
ELSE RAISERROR('Error in sp_sendMail !',16,1)
EXECUTE sp_OADestroy @CdoObject
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--
arno - http://www.dotnetguru2.org/acleret/
"Brigitte" a écrit dans le message de
news:Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
L'une des solutions consiste à écrire une procédure stockée faisant appel
à CDO par les procédures sp_OACreate ...
Voici un petit exemple d'une procédure écrite il y a quelque temps :
--------------------------------------------------------------------------
-- Script created in November 25 2003 by Arnaud CLERET --
-- This store procedure allow to send a mail without a mappy profil --
--------------------------------------------------------------------------
USE master
GO
DECLARE @WithLogEvent VARCHAR(5)
DECLARE @ReplaceMessage VARCHAR(7)
SET @WithLogEvent = 'false'
SET @ReplaceMessage = 'REPLACE'
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext = N'Error
during sending mail (Source : %s --- Description : %s).', @lang =
'us_english', @with_log = @WithLogEvent, @replace = @ReplaceMessage
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext = N'Erreur
lors de l''envoie du mail (Source : %1! --- Description : %2!)', @lang =
'French', @with_log = @WithLogEvent, @replace = @ReplaceMessage
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_sendMail
(
@MailFrom VARCHAR(50) = @@SERVERNAME,
@MailTo VARCHAR(255) = 'arnaud.cleret@gmail.antispam.com',
@MailCc VARCHAR(255) = NULL,
@MailBcc VARCHAR(255) = NULL,
@MailSubject VARCHAR(500) = NULL,
@MailBody VARCHAR(8000) = NULL,
@IsHTMLBody BIT = 0,
@FilesAttachments VARCHAR(8000) = NULL,
@FilesAttachmentsDelimiter CHAR(1) = ';',
@SendUsing CHAR(1) = '2',
@SMTPServerName VARCHAR(15) = '192.168.0.1',
@SMTPServerPort VARCHAR(5) = '25'
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @FilePath VARCHAR(255)
DECLARE @StatusRetour INT
DECLARE @CdoObject INT
DECLARE @ErrorSource NVARCHAR(255)
DECLARE @ErrorDescription NVARCHAR(500)
EXECUTE @StatusRetour = sp_OACreate 'CDO.Message', @CdoObject OUTPUT
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'From', @MailFrom
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'To', @MailTo
IF (@StatusRetour <> 0) GOTO ErrorHandler
IF(@MailCc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Cc', @MailCc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBcc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Bcc', @MailBcc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailSubject IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Subject',
@MailSubject
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBody IS NOT NULL)
BEGIN
IF(@IsHTMLBody = 0)EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'TextBody', @MailBody
ELSE EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'HTMLBody',
@MailBody
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF (@FilesAttachments IS NOT NULL)
BEGIN
SET @FilesAttachments = LTrim(RTrim(@FilesAttachments))
WHILE(DATALENGTH(@FilesAttachments) > 0)
BEGIN
IF(CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments) > 0)
BEGIN
SET @FilePath = SUBSTRING(@FilesAttachments,1,
CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments)-1)
SET @FilesAttachments =
LTrim(Right(@FilesAttachments,DATALENGTH(@FilesAttachments) -
DATALENGTH(@FilePath + @FilesAttachmentsDelimiter)))
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
END
ELSE
BEGIN
SET @FilePath = @FilesAttachments
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
BREAK
END
END
END
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value',
@SendUsing
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value',
@SMTPServerName
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value',
@SMTPServerPort
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject,
'Configuration.Fields.Update'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'Send'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE sp_OADestroy @CdoObject
RETURN
ErrorHandler:
EXECUTE @StatusRetour = sp_OAGetErrorInfo @CdoObject, @ErrorSource OUT,
@ErrorDescription OUT
IF (@StatusRetour = 0)RAISERROR (50001, 16, 1, @ErrorSource,
@ErrorDescription)
ELSE RAISERROR('Error in sp_sendMail !',16,1)
EXECUTE sp_OADestroy @CdoObject
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--
arno - http://www.dotnetguru2.org/acleret/
"Brigitte" <Brigitte@discussions.microsoft.com> a écrit dans le message de
news: C33230A4-D225-492A-9182-2156FB9AEEA7@microsoft.com...
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
L'une des solutions consiste à écrire une procédure stockée faisant appel
à CDO par les procédures sp_OACreate ...
Voici un petit exemple d'une procédure écrite il y a quelque temps :
--------------------------------------------------------------------------
-- Script created in November 25 2003 by Arnaud CLERET --
-- This store procedure allow to send a mail without a mappy profil --
--------------------------------------------------------------------------
USE master
GO
DECLARE @WithLogEvent VARCHAR(5)
DECLARE @ReplaceMessage VARCHAR(7)
SET @WithLogEvent = 'false'
SET @ReplaceMessage = 'REPLACE'
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext = N'Error
during sending mail (Source : %s --- Description : %s).', @lang =
'us_english', @with_log = @WithLogEvent, @replace = @ReplaceMessage
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext = N'Erreur
lors de l''envoie du mail (Source : %1! --- Description : %2!)', @lang =
'French', @with_log = @WithLogEvent, @replace = @ReplaceMessage
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_sendMail
(
@MailFrom VARCHAR(50) = @@SERVERNAME,
@MailTo VARCHAR(255) = '',
@MailCc VARCHAR(255) = NULL,
@MailBcc VARCHAR(255) = NULL,
@MailSubject VARCHAR(500) = NULL,
@MailBody VARCHAR(8000) = NULL,
@IsHTMLBody BIT = 0,
@FilesAttachments VARCHAR(8000) = NULL,
@FilesAttachmentsDelimiter CHAR(1) = ';',
@SendUsing CHAR(1) = '2',
@SMTPServerName VARCHAR(15) = '192.168.0.1',
@SMTPServerPort VARCHAR(5) = '25'
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @FilePath VARCHAR(255)
DECLARE @StatusRetour INT
DECLARE @CdoObject INT
DECLARE @ErrorSource NVARCHAR(255)
DECLARE @ErrorDescription NVARCHAR(500)
EXECUTE @StatusRetour = sp_OACreate 'CDO.Message', @CdoObject OUTPUT
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'From', @MailFrom
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'To', @MailTo
IF (@StatusRetour <> 0) GOTO ErrorHandler
IF(@MailCc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Cc', @MailCc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBcc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Bcc', @MailBcc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailSubject IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Subject',
@MailSubject
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBody IS NOT NULL)
BEGIN
IF(@IsHTMLBody = 0)EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'TextBody', @MailBody
ELSE EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'HTMLBody',
@MailBody
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF (@FilesAttachments IS NOT NULL)
BEGIN
SET @FilesAttachments = LTrim(RTrim(@FilesAttachments))
WHILE(DATALENGTH(@FilesAttachments) > 0)
BEGIN
IF(CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments) > 0)
BEGIN
SET @FilePath = SUBSTRING(@FilesAttachments,1,
CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments)-1)
SET @FilesAttachments =
LTrim(Right(@FilesAttachments,DATALENGTH(@FilesAttachments) -
DATALENGTH(@FilePath + @FilesAttachmentsDelimiter)))
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
END
ELSE
BEGIN
SET @FilePath = @FilesAttachments
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
BREAK
END
END
END
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value',
@SendUsing
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value',
@SMTPServerName
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value',
@SMTPServerPort
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject,
'Configuration.Fields.Update'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'Send'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE sp_OADestroy @CdoObject
RETURN
ErrorHandler:
EXECUTE @StatusRetour = sp_OAGetErrorInfo @CdoObject, @ErrorSource OUT,
@ErrorDescription OUT
IF (@StatusRetour = 0)RAISERROR (50001, 16, 1, @ErrorSource,
@ErrorDescription)
ELSE RAISERROR('Error in sp_sendMail !',16,1)
EXECUTE sp_OADestroy @CdoObject
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--
arno - http://www.dotnetguru2.org/acleret/
"Brigitte" a écrit dans le message de
news:Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Vous devriez poster ce type de source sur un site tel que :
- www.sqlfr.com
ou sur :
- www.guss.fr
Ce sont des questions régulièrement demandées.
--
Cordialement.
Romelard Fabrice [MVP]
"Arnaud CLERET" a écrit dans le message
de news: %234Gaa%L'une des solutions consiste à écrire une procédure stockée faisant appel
à CDO par les procédures sp_OACreate ...
Voici un petit exemple d'une procédure écrite il y a quelque temps :
--------------------------------------------------------------------------
-- Script created in November 25 2003 by Arnaud CLERET --
-- This store procedure allow to send a mail without a mappy profil --
--------------------------------------------------------------------------
USE master
GO
DECLARE @WithLogEvent VARCHAR(5)
DECLARE @ReplaceMessage VARCHAR(7)
SET @WithLogEvent = 'false'
SET @ReplaceMessage = 'REPLACE'
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext = N'Error
during sending mail (Source : %s --- Description : %s).', @lang =
'us_english', @with_log = @WithLogEvent, @replace = @ReplaceMessage
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext =
N'Erreur lors de l''envoie du mail (Source : %1! --- Description : %2!)',
@lang = 'French', @with_log = @WithLogEvent, @replace = @ReplaceMessage
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_sendMail
(
@MailFrom VARCHAR(50) = @@SERVERNAME,
@MailTo VARCHAR(255) = '',
@MailCc VARCHAR(255) = NULL,
@MailBcc VARCHAR(255) = NULL,
@MailSubject VARCHAR(500) = NULL,
@MailBody VARCHAR(8000) = NULL,
@IsHTMLBody BIT = 0,
@FilesAttachments VARCHAR(8000) = NULL,
@FilesAttachmentsDelimiter CHAR(1) = ';',
@SendUsing CHAR(1) = '2',
@SMTPServerName VARCHAR(15) = '192.168.0.1',
@SMTPServerPort VARCHAR(5) = '25'
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @FilePath VARCHAR(255)
DECLARE @StatusRetour INT
DECLARE @CdoObject INT
DECLARE @ErrorSource NVARCHAR(255)
DECLARE @ErrorDescription NVARCHAR(500)
EXECUTE @StatusRetour = sp_OACreate 'CDO.Message', @CdoObject OUTPUT
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'From', @MailFrom
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'To', @MailTo
IF (@StatusRetour <> 0) GOTO ErrorHandler
IF(@MailCc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Cc', @MailCc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBcc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Bcc', @MailBcc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailSubject IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Subject',
@MailSubject
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBody IS NOT NULL)
BEGIN
IF(@IsHTMLBody = 0)EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'TextBody', @MailBody
ELSE EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'HTMLBody',
@MailBody
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF (@FilesAttachments IS NOT NULL)
BEGIN
SET @FilesAttachments = LTrim(RTrim(@FilesAttachments))
WHILE(DATALENGTH(@FilesAttachments) > 0)
BEGIN
IF(CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments) > 0)
BEGIN
SET @FilePath = SUBSTRING(@FilesAttachments,1,
CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments)-1)
SET @FilesAttachments =
LTrim(Right(@FilesAttachments,DATALENGTH(@FilesAttachments) -
DATALENGTH(@FilePath + @FilesAttachmentsDelimiter)))
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
END
ELSE
BEGIN
SET @FilePath = @FilesAttachments
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
BREAK
END
END
END
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value',
@SendUsing
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value',
@SMTPServerName
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value',
@SMTPServerPort
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject,
'Configuration.Fields.Update'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'Send'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE sp_OADestroy @CdoObject
RETURN
ErrorHandler:
EXECUTE @StatusRetour = sp_OAGetErrorInfo @CdoObject, @ErrorSource OUT,
@ErrorDescription OUT
IF (@StatusRetour = 0)RAISERROR (50001, 16, 1, @ErrorSource,
@ErrorDescription)
ELSE RAISERROR('Error in sp_sendMail !',16,1)
EXECUTE sp_OADestroy @CdoObject
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--
arno - http://www.dotnetguru2.org/acleret/
"Brigitte" a écrit dans le message
de news:Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Vous devriez poster ce type de source sur un site tel que :
- www.sqlfr.com
ou sur :
- www.guss.fr
Ce sont des questions régulièrement demandées.
--
Cordialement.
Romelard Fabrice [MVP]
"Arnaud CLERET" <arnaud.cleret@gmail.antispam.com> a écrit dans le message
de news: %234Gaa%232TGHA.5000@TK2MSFTNGP10.phx.gbl...
L'une des solutions consiste à écrire une procédure stockée faisant appel
à CDO par les procédures sp_OACreate ...
Voici un petit exemple d'une procédure écrite il y a quelque temps :
--------------------------------------------------------------------------
-- Script created in November 25 2003 by Arnaud CLERET --
-- This store procedure allow to send a mail without a mappy profil --
--------------------------------------------------------------------------
USE master
GO
DECLARE @WithLogEvent VARCHAR(5)
DECLARE @ReplaceMessage VARCHAR(7)
SET @WithLogEvent = 'false'
SET @ReplaceMessage = 'REPLACE'
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext = N'Error
during sending mail (Source : %s --- Description : %s).', @lang =
'us_english', @with_log = @WithLogEvent, @replace = @ReplaceMessage
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext =
N'Erreur lors de l''envoie du mail (Source : %1! --- Description : %2!)',
@lang = 'French', @with_log = @WithLogEvent, @replace = @ReplaceMessage
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_sendMail
(
@MailFrom VARCHAR(50) = @@SERVERNAME,
@MailTo VARCHAR(255) = 'arnaud.cleret@gmail.antispam.com',
@MailCc VARCHAR(255) = NULL,
@MailBcc VARCHAR(255) = NULL,
@MailSubject VARCHAR(500) = NULL,
@MailBody VARCHAR(8000) = NULL,
@IsHTMLBody BIT = 0,
@FilesAttachments VARCHAR(8000) = NULL,
@FilesAttachmentsDelimiter CHAR(1) = ';',
@SendUsing CHAR(1) = '2',
@SMTPServerName VARCHAR(15) = '192.168.0.1',
@SMTPServerPort VARCHAR(5) = '25'
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @FilePath VARCHAR(255)
DECLARE @StatusRetour INT
DECLARE @CdoObject INT
DECLARE @ErrorSource NVARCHAR(255)
DECLARE @ErrorDescription NVARCHAR(500)
EXECUTE @StatusRetour = sp_OACreate 'CDO.Message', @CdoObject OUTPUT
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'From', @MailFrom
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'To', @MailTo
IF (@StatusRetour <> 0) GOTO ErrorHandler
IF(@MailCc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Cc', @MailCc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBcc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Bcc', @MailBcc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailSubject IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Subject',
@MailSubject
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBody IS NOT NULL)
BEGIN
IF(@IsHTMLBody = 0)EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'TextBody', @MailBody
ELSE EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'HTMLBody',
@MailBody
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF (@FilesAttachments IS NOT NULL)
BEGIN
SET @FilesAttachments = LTrim(RTrim(@FilesAttachments))
WHILE(DATALENGTH(@FilesAttachments) > 0)
BEGIN
IF(CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments) > 0)
BEGIN
SET @FilePath = SUBSTRING(@FilesAttachments,1,
CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments)-1)
SET @FilesAttachments =
LTrim(Right(@FilesAttachments,DATALENGTH(@FilesAttachments) -
DATALENGTH(@FilePath + @FilesAttachmentsDelimiter)))
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
END
ELSE
BEGIN
SET @FilePath = @FilesAttachments
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
BREAK
END
END
END
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value',
@SendUsing
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value',
@SMTPServerName
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value',
@SMTPServerPort
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject,
'Configuration.Fields.Update'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'Send'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE sp_OADestroy @CdoObject
RETURN
ErrorHandler:
EXECUTE @StatusRetour = sp_OAGetErrorInfo @CdoObject, @ErrorSource OUT,
@ErrorDescription OUT
IF (@StatusRetour = 0)RAISERROR (50001, 16, 1, @ErrorSource,
@ErrorDescription)
ELSE RAISERROR('Error in sp_sendMail !',16,1)
EXECUTE sp_OADestroy @CdoObject
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--
arno - http://www.dotnetguru2.org/acleret/
"Brigitte" <Brigitte@discussions.microsoft.com> a écrit dans le message
de news: C33230A4-D225-492A-9182-2156FB9AEEA7@microsoft.com...
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Vous devriez poster ce type de source sur un site tel que :
- www.sqlfr.com
ou sur :
- www.guss.fr
Ce sont des questions régulièrement demandées.
--
Cordialement.
Romelard Fabrice [MVP]
"Arnaud CLERET" a écrit dans le message
de news: %234Gaa%L'une des solutions consiste à écrire une procédure stockée faisant appel
à CDO par les procédures sp_OACreate ...
Voici un petit exemple d'une procédure écrite il y a quelque temps :
--------------------------------------------------------------------------
-- Script created in November 25 2003 by Arnaud CLERET --
-- This store procedure allow to send a mail without a mappy profil --
--------------------------------------------------------------------------
USE master
GO
DECLARE @WithLogEvent VARCHAR(5)
DECLARE @ReplaceMessage VARCHAR(7)
SET @WithLogEvent = 'false'
SET @ReplaceMessage = 'REPLACE'
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext = N'Error
during sending mail (Source : %s --- Description : %s).', @lang =
'us_english', @with_log = @WithLogEvent, @replace = @ReplaceMessage
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext =
N'Erreur lors de l''envoie du mail (Source : %1! --- Description : %2!)',
@lang = 'French', @with_log = @WithLogEvent, @replace = @ReplaceMessage
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_sendMail
(
@MailFrom VARCHAR(50) = @@SERVERNAME,
@MailTo VARCHAR(255) = '',
@MailCc VARCHAR(255) = NULL,
@MailBcc VARCHAR(255) = NULL,
@MailSubject VARCHAR(500) = NULL,
@MailBody VARCHAR(8000) = NULL,
@IsHTMLBody BIT = 0,
@FilesAttachments VARCHAR(8000) = NULL,
@FilesAttachmentsDelimiter CHAR(1) = ';',
@SendUsing CHAR(1) = '2',
@SMTPServerName VARCHAR(15) = '192.168.0.1',
@SMTPServerPort VARCHAR(5) = '25'
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @FilePath VARCHAR(255)
DECLARE @StatusRetour INT
DECLARE @CdoObject INT
DECLARE @ErrorSource NVARCHAR(255)
DECLARE @ErrorDescription NVARCHAR(500)
EXECUTE @StatusRetour = sp_OACreate 'CDO.Message', @CdoObject OUTPUT
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'From', @MailFrom
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'To', @MailTo
IF (@StatusRetour <> 0) GOTO ErrorHandler
IF(@MailCc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Cc', @MailCc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBcc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Bcc', @MailBcc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailSubject IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Subject',
@MailSubject
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBody IS NOT NULL)
BEGIN
IF(@IsHTMLBody = 0)EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'TextBody', @MailBody
ELSE EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'HTMLBody',
@MailBody
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF (@FilesAttachments IS NOT NULL)
BEGIN
SET @FilesAttachments = LTrim(RTrim(@FilesAttachments))
WHILE(DATALENGTH(@FilesAttachments) > 0)
BEGIN
IF(CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments) > 0)
BEGIN
SET @FilePath = SUBSTRING(@FilesAttachments,1,
CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments)-1)
SET @FilesAttachments =
LTrim(Right(@FilesAttachments,DATALENGTH(@FilesAttachments) -
DATALENGTH(@FilePath + @FilesAttachmentsDelimiter)))
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
END
ELSE
BEGIN
SET @FilePath = @FilesAttachments
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment', NULL,
@FilePath
BREAK
END
END
END
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value',
@SendUsing
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value',
@SMTPServerName
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value',
@SMTPServerPort
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject,
'Configuration.Fields.Update'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'Send'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE sp_OADestroy @CdoObject
RETURN
ErrorHandler:
EXECUTE @StatusRetour = sp_OAGetErrorInfo @CdoObject, @ErrorSource OUT,
@ErrorDescription OUT
IF (@StatusRetour = 0)RAISERROR (50001, 16, 1, @ErrorSource,
@ErrorDescription)
ELSE RAISERROR('Error in sp_sendMail !',16,1)
EXECUTE sp_OADestroy @CdoObject
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--
arno - http://www.dotnetguru2.org/acleret/
"Brigitte" a écrit dans le message
de news:Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
En effet, d'autant plus que je suis membre de GUSS et là j'ai totalement
zappé :)
Mea Culpa, je m'empresse de le faire.
--
arno - http://www.dotnetguru2.org/acleret/
"Romelard Fabrice [MVP]" a écrit dans le message
de news: e09%23jt%Bonjour,
Vous devriez poster ce type de source sur un site tel que :
- www.sqlfr.com
ou sur :
- www.guss.fr
Ce sont des questions régulièrement demandées.
--
Cordialement.
Romelard Fabrice [MVP]
"Arnaud CLERET" a écrit dans le
message de news: %234Gaa%L'une des solutions consiste à écrire une procédure stockée faisant
appel à CDO par les procédures sp_OACreate ...
Voici un petit exemple d'une procédure écrite il y a quelque temps :
--------------------------------------------------------------------------
-- Script created in November 25 2003 by Arnaud CLERET --
-- This store procedure allow to send a mail without a mappy profil --
--------------------------------------------------------------------------
USE master
GO
DECLARE @WithLogEvent VARCHAR(5)
DECLARE @ReplaceMessage VARCHAR(7)
SET @WithLogEvent = 'false'
SET @ReplaceMessage = 'REPLACE'
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext =
N'Error during sending mail (Source : %s --- Description : %s).', @lang
= 'us_english', @with_log = @WithLogEvent, @replace = @ReplaceMessage
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext =
N'Erreur lors de l''envoie du mail (Source : %1! --- Description :
%2!)', @lang = 'French', @with_log = @WithLogEvent, @replace =
@ReplaceMessage
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_sendMail
(
@MailFrom VARCHAR(50) = @@SERVERNAME,
@MailTo VARCHAR(255) = '',
@MailCc VARCHAR(255) = NULL,
@MailBcc VARCHAR(255) = NULL,
@MailSubject VARCHAR(500) = NULL,
@MailBody VARCHAR(8000) = NULL,
@IsHTMLBody BIT = 0,
@FilesAttachments VARCHAR(8000) = NULL,
@FilesAttachmentsDelimiter CHAR(1) = ';',
@SendUsing CHAR(1) = '2',
@SMTPServerName VARCHAR(15) = '192.168.0.1',
@SMTPServerPort VARCHAR(5) = '25'
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @FilePath VARCHAR(255)
DECLARE @StatusRetour INT
DECLARE @CdoObject INT
DECLARE @ErrorSource NVARCHAR(255)
DECLARE @ErrorDescription NVARCHAR(500)
EXECUTE @StatusRetour = sp_OACreate 'CDO.Message', @CdoObject OUTPUT
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'From', @MailFrom
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'To', @MailTo
IF (@StatusRetour <> 0) GOTO ErrorHandler
IF(@MailCc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Cc', @MailCc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBcc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Bcc', @MailBcc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailSubject IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Subject',
@MailSubject
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBody IS NOT NULL)
BEGIN
IF(@IsHTMLBody = 0)EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'TextBody', @MailBody
ELSE EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'HTMLBody',
@MailBody
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF (@FilesAttachments IS NOT NULL)
BEGIN
SET @FilesAttachments = LTrim(RTrim(@FilesAttachments))
WHILE(DATALENGTH(@FilesAttachments) > 0)
BEGIN
IF(CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments) > 0)
BEGIN
SET @FilePath = SUBSTRING(@FilesAttachments,1,
CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments)-1)
SET @FilesAttachments =
LTrim(Right(@FilesAttachments,DATALENGTH(@FilesAttachments) -
DATALENGTH(@FilePath + @FilesAttachmentsDelimiter)))
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment',
NULL, @FilePath
END
ELSE
BEGIN
SET @FilePath = @FilesAttachments
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment',
NULL, @FilePath
BREAK
END
END
END
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value',
@SendUsing
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value',
@SMTPServerName
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value',
@SMTPServerPort
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject,
'Configuration.Fields.Update'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'Send'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE sp_OADestroy @CdoObject
RETURN
ErrorHandler:
EXECUTE @StatusRetour = sp_OAGetErrorInfo @CdoObject, @ErrorSource OUT,
@ErrorDescription OUT
IF (@StatusRetour = 0)RAISERROR (50001, 16, 1, @ErrorSource,
@ErrorDescription)
ELSE RAISERROR('Error in sp_sendMail !',16,1)
EXECUTE sp_OADestroy @CdoObject
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--
arno - http://www.dotnetguru2.org/acleret/
"Brigitte" a écrit dans le message
de news:Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
En effet, d'autant plus que je suis membre de GUSS et là j'ai totalement
zappé :)
Mea Culpa, je m'empresse de le faire.
--
arno - http://www.dotnetguru2.org/acleret/
"Romelard Fabrice [MVP]" <fromelard@hotmail.com> a écrit dans le message
de news: e09%23jt%23TGHA.1728@TK2MSFTNGP11.phx.gbl...
Bonjour,
Vous devriez poster ce type de source sur un site tel que :
- www.sqlfr.com
ou sur :
- www.guss.fr
Ce sont des questions régulièrement demandées.
--
Cordialement.
Romelard Fabrice [MVP]
"Arnaud CLERET" <arnaud.cleret@gmail.antispam.com> a écrit dans le
message de news: %234Gaa%232TGHA.5000@TK2MSFTNGP10.phx.gbl...
L'une des solutions consiste à écrire une procédure stockée faisant
appel à CDO par les procédures sp_OACreate ...
Voici un petit exemple d'une procédure écrite il y a quelque temps :
--------------------------------------------------------------------------
-- Script created in November 25 2003 by Arnaud CLERET --
-- This store procedure allow to send a mail without a mappy profil --
--------------------------------------------------------------------------
USE master
GO
DECLARE @WithLogEvent VARCHAR(5)
DECLARE @ReplaceMessage VARCHAR(7)
SET @WithLogEvent = 'false'
SET @ReplaceMessage = 'REPLACE'
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext =
N'Error during sending mail (Source : %s --- Description : %s).', @lang
= 'us_english', @with_log = @WithLogEvent, @replace = @ReplaceMessage
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext =
N'Erreur lors de l''envoie du mail (Source : %1! --- Description :
%2!)', @lang = 'French', @with_log = @WithLogEvent, @replace =
@ReplaceMessage
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_sendMail
(
@MailFrom VARCHAR(50) = @@SERVERNAME,
@MailTo VARCHAR(255) = 'arnaud.cleret@gmail.antispam.com',
@MailCc VARCHAR(255) = NULL,
@MailBcc VARCHAR(255) = NULL,
@MailSubject VARCHAR(500) = NULL,
@MailBody VARCHAR(8000) = NULL,
@IsHTMLBody BIT = 0,
@FilesAttachments VARCHAR(8000) = NULL,
@FilesAttachmentsDelimiter CHAR(1) = ';',
@SendUsing CHAR(1) = '2',
@SMTPServerName VARCHAR(15) = '192.168.0.1',
@SMTPServerPort VARCHAR(5) = '25'
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @FilePath VARCHAR(255)
DECLARE @StatusRetour INT
DECLARE @CdoObject INT
DECLARE @ErrorSource NVARCHAR(255)
DECLARE @ErrorDescription NVARCHAR(500)
EXECUTE @StatusRetour = sp_OACreate 'CDO.Message', @CdoObject OUTPUT
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'From', @MailFrom
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'To', @MailTo
IF (@StatusRetour <> 0) GOTO ErrorHandler
IF(@MailCc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Cc', @MailCc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBcc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Bcc', @MailBcc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailSubject IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Subject',
@MailSubject
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBody IS NOT NULL)
BEGIN
IF(@IsHTMLBody = 0)EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'TextBody', @MailBody
ELSE EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'HTMLBody',
@MailBody
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF (@FilesAttachments IS NOT NULL)
BEGIN
SET @FilesAttachments = LTrim(RTrim(@FilesAttachments))
WHILE(DATALENGTH(@FilesAttachments) > 0)
BEGIN
IF(CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments) > 0)
BEGIN
SET @FilePath = SUBSTRING(@FilesAttachments,1,
CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments)-1)
SET @FilesAttachments =
LTrim(Right(@FilesAttachments,DATALENGTH(@FilesAttachments) -
DATALENGTH(@FilePath + @FilesAttachmentsDelimiter)))
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment',
NULL, @FilePath
END
ELSE
BEGIN
SET @FilePath = @FilesAttachments
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment',
NULL, @FilePath
BREAK
END
END
END
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value',
@SendUsing
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value',
@SMTPServerName
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value',
@SMTPServerPort
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject,
'Configuration.Fields.Update'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'Send'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE sp_OADestroy @CdoObject
RETURN
ErrorHandler:
EXECUTE @StatusRetour = sp_OAGetErrorInfo @CdoObject, @ErrorSource OUT,
@ErrorDescription OUT
IF (@StatusRetour = 0)RAISERROR (50001, 16, 1, @ErrorSource,
@ErrorDescription)
ELSE RAISERROR('Error in sp_sendMail !',16,1)
EXECUTE sp_OADestroy @CdoObject
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--
arno - http://www.dotnetguru2.org/acleret/
"Brigitte" <Brigitte@discussions.microsoft.com> a écrit dans le message
de news: C33230A4-D225-492A-9182-2156FB9AEEA7@microsoft.com...
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
En effet, d'autant plus que je suis membre de GUSS et là j'ai totalement
zappé :)
Mea Culpa, je m'empresse de le faire.
--
arno - http://www.dotnetguru2.org/acleret/
"Romelard Fabrice [MVP]" a écrit dans le message
de news: e09%23jt%Bonjour,
Vous devriez poster ce type de source sur un site tel que :
- www.sqlfr.com
ou sur :
- www.guss.fr
Ce sont des questions régulièrement demandées.
--
Cordialement.
Romelard Fabrice [MVP]
"Arnaud CLERET" a écrit dans le
message de news: %234Gaa%L'une des solutions consiste à écrire une procédure stockée faisant
appel à CDO par les procédures sp_OACreate ...
Voici un petit exemple d'une procédure écrite il y a quelque temps :
--------------------------------------------------------------------------
-- Script created in November 25 2003 by Arnaud CLERET --
-- This store procedure allow to send a mail without a mappy profil --
--------------------------------------------------------------------------
USE master
GO
DECLARE @WithLogEvent VARCHAR(5)
DECLARE @ReplaceMessage VARCHAR(7)
SET @WithLogEvent = 'false'
SET @ReplaceMessage = 'REPLACE'
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext =
N'Error during sending mail (Source : %s --- Description : %s).', @lang
= 'us_english', @with_log = @WithLogEvent, @replace = @ReplaceMessage
EXECUTE sp_addmessage @msgnum = 50001, @severity = 16, @msgtext =
N'Erreur lors de l''envoie du mail (Source : %1! --- Description :
%2!)', @lang = 'French', @with_log = @WithLogEvent, @replace =
@ReplaceMessage
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_sendMail
(
@MailFrom VARCHAR(50) = @@SERVERNAME,
@MailTo VARCHAR(255) = '',
@MailCc VARCHAR(255) = NULL,
@MailBcc VARCHAR(255) = NULL,
@MailSubject VARCHAR(500) = NULL,
@MailBody VARCHAR(8000) = NULL,
@IsHTMLBody BIT = 0,
@FilesAttachments VARCHAR(8000) = NULL,
@FilesAttachmentsDelimiter CHAR(1) = ';',
@SendUsing CHAR(1) = '2',
@SMTPServerName VARCHAR(15) = '192.168.0.1',
@SMTPServerPort VARCHAR(5) = '25'
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @FilePath VARCHAR(255)
DECLARE @StatusRetour INT
DECLARE @CdoObject INT
DECLARE @ErrorSource NVARCHAR(255)
DECLARE @ErrorDescription NVARCHAR(500)
EXECUTE @StatusRetour = sp_OACreate 'CDO.Message', @CdoObject OUTPUT
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'From', @MailFrom
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'To', @MailTo
IF (@StatusRetour <> 0) GOTO ErrorHandler
IF(@MailCc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Cc', @MailCc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBcc IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Bcc', @MailBcc
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailSubject IS NOT NULL)
BEGIN
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'Subject',
@MailSubject
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF(@MailBody IS NOT NULL)
BEGIN
IF(@IsHTMLBody = 0)EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'TextBody', @MailBody
ELSE EXECUTE @StatusRetour = sp_OASetProperty @CdoObject, 'HTMLBody',
@MailBody
IF (@StatusRetour <> 0) GOTO ErrorHandler
END
IF (@FilesAttachments IS NOT NULL)
BEGIN
SET @FilesAttachments = LTrim(RTrim(@FilesAttachments))
WHILE(DATALENGTH(@FilesAttachments) > 0)
BEGIN
IF(CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments) > 0)
BEGIN
SET @FilePath = SUBSTRING(@FilesAttachments,1,
CHARINDEX(@FilesAttachmentsDelimiter,@FilesAttachments)-1)
SET @FilesAttachments =
LTrim(Right(@FilesAttachments,DATALENGTH(@FilesAttachments) -
DATALENGTH(@FilePath + @FilesAttachmentsDelimiter)))
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment',
NULL, @FilePath
END
ELSE
BEGIN
SET @FilePath = @FilesAttachments
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'AddAttachment',
NULL, @FilePath
BREAK
END
END
END
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value',
@SendUsing
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value',
@SMTPServerName
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OASetProperty @CdoObject,
'Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value',
@SMTPServerPort
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject,
'Configuration.Fields.Update'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE @StatusRetour = sp_OAMethod @CdoObject, 'Send'
IF (@StatusRetour <> 0) GOTO ErrorHandler
EXECUTE sp_OADestroy @CdoObject
RETURN
ErrorHandler:
EXECUTE @StatusRetour = sp_OAGetErrorInfo @CdoObject, @ErrorSource OUT,
@ErrorDescription OUT
IF (@StatusRetour = 0)RAISERROR (50001, 16, 1, @ErrorSource,
@ErrorDescription)
ELSE RAISERROR('Error in sp_sendMail !',16,1)
EXECUTE sp_OADestroy @CdoObject
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--
arno - http://www.dotnetguru2.org/acleret/
"Brigitte" a écrit dans le message
de news:Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
et hop ! Le code source est dispo sur :
http://www.sqlfr.com/code.aspx?ID6725
et hop ! Le code source est dispo sur :
http://www.sqlfr.com/code.aspx?ID6725
et hop ! Le code source est dispo sur :
http://www.sqlfr.com/code.aspx?ID6725
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Les réponses d'Arnaud et de Frédéric nécessitent me semble-t-il de
disposer
d'un serveur SMTP.
Je crois la réponse à la question est : non, on ne peut pas envoyer de
sans MAPI ni SMTP. C'est d'ailleurs assez logique et non lié à
SQL-Server...
Cordialement,
Martin
"Brigitte" a écrit :Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Les réponses d'Arnaud et de Frédéric nécessitent me semble-t-il de
disposer
d'un serveur SMTP.
Je crois la réponse à la question est : non, on ne peut pas envoyer de
sans MAPI ni SMTP. C'est d'ailleurs assez logique et non lié à
SQL-Server...
Cordialement,
Martin
"Brigitte" a écrit :
Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte
Bonjour,
Les réponses d'Arnaud et de Frédéric nécessitent me semble-t-il de
disposer
d'un serveur SMTP.
Je crois la réponse à la question est : non, on ne peut pas envoyer de
sans MAPI ni SMTP. C'est d'ailleurs assez logique et non lié à
SQL-Server...
Cordialement,
Martin
"Brigitte" a écrit :Bonjour,
Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?
Merci
Bonne fin dejournée
Brigitte