Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Envoi d'un mail sans client MAPI et sans SMTP

8 réponses
Avatar
Brigitte
Bonjour,

Est-il possible d'envoyer un mail sans SMTP et sans client MAPI?

Merci

Bonne fin dejournée

Brigitte

8 réponses

Avatar
Romelard Fabrice [MVP]
Bonjour,

Pour SQL Server 2005 :
- http://www.asp-php.net/tutorial/asp.net/sqlserver2005mail.php

Pour SQL Server 2000 :
- http://www.asp-php.net/tutorial/asp.net/sqlservermail.php

--
Cordialement.

Romelard Fabrice [MVP]

"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


Avatar
Arnaud CLERET
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


Avatar
Romelard Fabrice [MVP]
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






Avatar
Arnaud CLERET
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










Avatar
Arnaud CLERET
et hop ! Le code source est dispo sur :
http://www.sqlfr.com/code.aspx?ID6725

--
arno - http://www.dotnetguru2.org/acleret/

"Arnaud CLERET" a écrit dans le message
de news:
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














Avatar
SQLpro [MVP]
Arnaud CLERET a écrit :
et hop ! Le code source est dispo sur :
http://www.sqlfr.com/code.aspx?ID6725



On a déjà posté un article avec deux versions sur le sujet sur GUSS :
http://www.guss.fr/DesktopModules/Articles/ArticlesView.aspx?tabID=0&ItemIDI&mid(89

A +


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
tintin
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 mail
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


Avatar
Arnaud CLERET
Je pense qu'il fallait comprendre la question comme ne nécessitant pas
d'installer un serveur SMTP sur le serveur SQL.

--
arno - http://www.dotnetguru2.org/acleret/

"tintin" a écrit dans le message de news:

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
mail
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