|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
Função de envio de e-mail. |
|
Versão: |
. |
|
Plataforma: |
. |
Complemento: |
|
|
DB: |
. |
Complemento: |
|
|
|
|
|
Mensagem do
@BETO
em 17/11/2017, 11:47 h
Local: MG Registro: 26/01/2006 Postagens: 534 |
Bom dia caros, acabei desenvolvendo uma rotina que me ajudou muito para envio de e-mail, funciona ate com anexo de documentos.
Os parâmetros usados são os padrões do sistema, podendo ser ajustado pelo configurador.
#INCLUDE "rwmake.ch"
#Include "Ap5Mail.ch"
#Include "PROTHEUS.CH"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ENVMAIL ºAutor ³Roberto Zaniboni º Data ³ 04/06/05 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Rotina para enviou de pedidos via e-mail º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ IMPREL() º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
user Function ENVMAIL(cRecebe, cAssunto, cMsg, cAnexo)
local cServer := alltrim(GetMV("MV_RELSERV"))
local cAccount := alltrim(GetMV("MV_RELACNT"))
local cPassword := alltrim(GetMV("MV_RELPSW"))
local cEnvia := alltrim(GetMV("MV_RELFROM"))
local lAutent := getmv("MV_RELAUTH")
local lConectou := .F.
local lEnviado := .f.
local nTent := 3
local nCont := 0
local lCond := .t.
//Verifica se o e-mail foi digitado corretamente
If !("@" $ (cRecebe))
if !IsBlind()
Alert("Endereco de envio inválido!")
else
conout("Erro", "Endereco de envio inválido!")
endif
Return
Endif
nCont++
while lCond
//Processo para Conectar no servidor de e-mail
if !IsBlind()
lEnd := .F.
bBloco := { |lEnd| lConectou := conectaserv(cServer, cAccount, cPassword, @lConectou) }
MsAguarde(bBloco,"Aguarde","Conectando no Servidor de E-mail...",.F.)
//Processo para Enviar o E-mail
else
lConectou := conectaserv(cServer, cAccount, cPassword, @lConectou)
endif
if lConectou
if !IsBlind()
lEnd := .F.
bBloco := { |lEnd| lEnviado := enviaanexo(cRecebe, cEnvia, cAssunto, cMsg, cAnexo, lAutent, cAccount, cPassword, @lEnviado, lConectou) }
MsAguarde(bBloco,"Aguarde","Enviando o E-mail...",.F.)
else
lEnviado := enviaanexo(cRecebe, cEnvia, cAssunto, cMsg, cAnexo, lAutent, cAccount, cPassword, @lEnviado, lConectou)
endif
//Processo para Desconctar do servidor de e-mail
If lConectou
DISCONNECT SMTP SERVER Result lDisConectou
if !IsBlind()
If !lDisConectou
Alert ("Erro ao disconectar do Servidor de e-mail - " + cServer)
EndIf
else
If !lDisConectou
conout("Erro", "Erro ao disconectar do Servidor de e-mail - " + cServer)
EndIf
endif
nCont := 4
EndIf
else
nCont++
endif
if nCont > nTent .or. lEnviado
lCond := .f.
endif
enddo
if !lConectou
if !IsBlind()
msgalert(‘Problemas com o Servidor de e-mail, por favor avisar o administrador.‘)
else
conout("Erro", ‘Problemas com o Servidor de e-mail, por favor avisar o administrador.‘)
endif
endif
Return lEnviado
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³CONECTASERº Autor ³Roberto Zaniboni º Data ³ 06/06/05 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Processo de acesso ao Servidor de E-mail º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ MANTASUL º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function conectaserv(cServer, cAccount, cPassword, lConectou)
//Conecta com o servidor de e-mail
CONNECT SMTP SERVER cServer ACCOUNT cAccount PASSWORD cPassword RESULT lConectou
if !lConectou
if !IsBlind()
Alert ("Erro na conecção com Servidor " + cServer)
else
conout("Erro", "Erro na conecção com Servidor " + cServer)
endif
Endif
Return lConectou
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ENVIAANEXOº Autor ³Roberto Zaniboni º Data ³ 06/06/05 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Processo de envio de e-mail com o anexo. º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ MANTASUL º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function Enviaanexo(cRecebe, cEnvia ,cAssunto, cMsg, cAnexo, lAutent, cAccount, cPassword, lEnviado, lConectou)
local lOk := .f.
local lEnviado := .F.
if lConectou
// autenticando comta se for necessario
if lAutent
lOK := mailauth(cAccount,cPassword)
If !lOk
if !IsBlind()
Alert("Nao foi possivel autenticar no Servidor de Email!")
else
conout("Erro", "Nao foi possivel autenticar no Servidor de Email!")
endif
Return
EndIf
endif
if alltrim(upper(GetEnvServer ( ))) $ ‘TESTE‘
cMsg += chr(13) + chr(10) + chr(13) + chr(10)
cMsg += ‘Esta mensagem e de teste, por favor descosiderar !‘ + chr(13) + chr(10)
cMsg += ‘Emitida em ambiente de teste.‘
endif
// enviando e-mail
//
if empty(cAnexo)
SEND MAIL FROM cEnvia TO cRecebe SUBJECT cAssunto BODY cMsg RESULT lEnviado
else
SEND MAIL FROM cEnvia TO cRecebe SUBJECT cAssunto BODY cMsg ATTACHMENT cAnexo RESULT lEnviado
endif
//
// caso retorne erro, avia o usuario
//
If !lEnviado
cMsgErro := " "
GET MAIL ERROR cMsgErro
if !Empty(cMsgErro)
if !IsBlind()
Alert(cMsgErro)
else
conout("Erro", cMsgErro)
endif
endif
Endif
EndIf
Return lEnviado |
|
|
Mensagem do
EMERSON.EN
em 05/12/2017, 08:37 h
Local: SP Registro: 20/08/2010 Postagens: 670 |
Obrigado por compartilhar.
|
|
Para postar no Fórum você precisa efetuar o seu login ou se registrar
|
|