PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WX - MSSQL - Send Email - Procedure MSSQL Exemplo - DatabaseMail
WX - MSSQL - Send Email - Procedure MSSQL Exemplo - DatabaseMail
Iniciado por adrianoboller, abr., 20 2015 7:18 PM - 3 respostas
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 20 2015 - 7:18 PM
USE [producao]
GO
/****** Object: StoredProcedure [dbo].[NG0024_EnviaEmail] Script Date: 04/20/2015 14:01:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER PROCEDURE [dbo].[NG0024_EnviaEmail] @Emails VARCHAR(254), @Assunto VARCHAR(254), @CabecalhoEmail VARCHAR(254), @Mensagem VARCHAR(MAX)

AS
BEGIN
SET NOCOUNT ON;

--SUPORTE

DECLARE @ID int;
DECLARE @CorpoEmail NVARCHAR(MAX);
DECLARE @emailcopia VARCHAR(1024);
SET @ID =0



SELECT @CorpoEmail = '<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Taxi62Monitor</title>
</head>
<body>
<br>
<div>
<p style="font-size:10pt;font-family:"Arial","sans-serif"">
<h2><b>'+ @CabecalhoEmail +'</h2></b>
<br>
<h3>'+@Mensagem+'</h3>
</div>
</body>
</html>';


--Envia Email

IF (@Emails<> ''AND @Mensagem <> '' AND @Assunto <> '' )
BEGIN

--Com Email
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DBASuporte',
@recipients = @Emails,
@copy_recipients = 'adrianoboller@gmail.com',
@subject = @assunto,
@body = @CorpoEmail,
@body_format = 'HTML',
@mailitem_id = @ID OUTPUT;


END



SELECT @ID AS emailId
END
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 20 2015 - 7:19 PM
:merci:
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 22 2015 - 11:26 PM
Outro exemplo usando DatabaseMail do MsSQL e WX (Ou seja, funciona nos 3 ambientes com a necessidade de um webservice para o mobile ou o SQLConnectWS)


//Send Email
Mensagem IS STRING = [
<html>
<head></head>
<body>
<br>
Dados do Contato:<br>
<br>
Cliente: #NOME# <br>
Telefone: #TELE# <br>
Email: #EMAI# <br>
<br>
Assunto: <br>
<br>
#ASSU# <br>
<br>
Obrigado pelas informações <br>
<br>
Em breve entraremos em contato. <br>
<br>
Atenciosamente, <br>
<br>
Equipe Taxi62 <br>
</body>
</html>
]

IF EDT_Nome <> "" AND EDT_Telefone <> "" AND EDT_E_Mail <> "" AND EDT_Assunto <> "" THEN

EDT_E_Mail = EDT_E_Mail + "; comercial@taxifaixavermelha.com.br; adrianoboller@gmail.com"

//SEM ACENTO
EDT_Nome = NoAccent(EDT_Nome)
EDT_Telefone = NoAccent(EDT_Telefone)
EDT_E_Mail = NoAccent(EDT_E_Mail)
EDT_Assunto = NoAccent(EDT_Assunto)

//CLIP
EDT_Nome = WS_Clip(EDT_Nome)
EDT_Telefone = WS_Clip(EDT_Telefone)
EDT_E_Mail = WS_Clip(EDT_E_Mail)
EDT_Assunto = WS_Clip(EDT_Assunto)

//SEM ...
EDT_Nome = REPLACE(EDT_Nome,"...","")
EDT_Telefone = REPLACE(EDT_Telefone,"...","")
EDT_E_Mail = REPLACE(EDT_E_Mail,"...","")
EDT_Assunto = REPLACE(EDT_Assunto,"...","")

Mensagem = REPLACE(Mensagem,"#NOME#",EDT_Nome)
Mensagem = REPLACE(Mensagem,"#TELE#",EDT_Telefone)
Mensagem = REPLACE(Mensagem,"#EMAI#",EDT_E_Mail)
Mensagem = REPLACE(Mensagem,"#ASSU#",EDT_Assunto)

SqlExecuteSendMail IS STRING = "NG0024_EnviaEmail '"+ EDT_E_Mail + "', 'FALE CONOSCO - Radiotaxi Faixa Vermelha', 'Voucher Eletronico - Taxi Faixa Vermelha', '" + Mensagem + "'"

//@Emails VARCHAR(254), @Assunto VARCHAR(254), @CabecalhoEmail VARCHAR(254), @Mensagem VARCHAR(MAX)

dsQryExecute IS Data Source

ok IS boolean = HExecuteSQLQuery(dsQryExecute,ConnNativa,hQueryWithoutCorrection,SqlExecuteSendMail)
IF ok = True THEN
ToastDisplay("Email enviado com sucesso!",toastLong,vaMiddle,haCenter)
PageDisplay(PAGE_Index)
ELSE
Info("Erro ao enviar o email",ErrorInfo())
END

ELSE
Info("Campo(s) Obrigatório(s) não foram preenchidos")
END

********************************************
USE [producao]
GO
/****** Object: StoredProcedure [dbo].[NG0024_EnviaEmail] Script Date: 04/22/2015 18:15:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER PROCEDURE [dbo].[NG0024_EnviaEmail] @Emails VARCHAR(254), @Assunto VARCHAR(254), @CabecalhoEmail VARCHAR(254), @Mensagem VARCHAR(MAX)

AS
BEGIN
SET NOCOUNT ON;

--SUPORTE

DECLARE @ID int;
DECLARE @CorpoEmail NVARCHAR(MAX);
DECLARE @emailcopia VARCHAR(1024);
SET @ID =0



SELECT @CorpoEmail = '<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Taxi62Monitor</title>
</head>
<body>
<br>
<div>
<p style="font-size:10pt;font-family:"Arial","sans-serif"">
<h2><b>'+ @CabecalhoEmail +'</h2></b>
<br>
<h3>'+@Mensagem+'</h3>
</div>
</body>
</html>';


--Envia Email

IF (@Emails<> ''AND @Mensagem <> '' AND @Assunto <> '' )
BEGIN

--Com Email
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DBASuporte',
@recipients = @Emails,
@copy_recipients = 'adrianoboller@gmail.com',
@subject = @assunto,
@body = @CorpoEmail,
@body_format = 'HTML',
@mailitem_id = @ID OUTPUT;


END



SELECT @ID AS emailId
END
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 22 2015 - 11:27 PM
:merci: