- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- E-mail não enviando, erro no oMessage:Send
×
Linguagem de Programação ADVPL
Perguntas E-mail não enviando, erro no oMessage:Send
- pedropalaoro
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 6
- Obrigados Recebidos: 0
10 anos 6 meses atrás #22548
por pedropalaoro
E-mail não enviando, erro no oMessage:Send foi criado por pedropalaoro
Pessoal, fiz uma função que é chamada dentro do pedido de venda para que a pessoa que verifica os pedidos envie e-mail para quem for necessário direto do pedido de venda. Ainda estou mexendo nele. Mas não estou conseguindo faze-lo sair. Tenho outros P.E. e funções com esse objeto e funcionam. Mas esse não passa do penúltimo IF, que é justamente para ver o objeto oMessage:Send. Ele ta erro de There was no response from the server.
Mas como já falado o serviço esta normal. Então creio que estou comendo mosca em uma parte que eu ainda não identifiquei. Gostaria de um ajuda.
Obrigado.
Segue abaixo o fonte.
#Include "protheus.ch"
/*
Autor Pedro Palaoro
Data: 05/05/2014
@Envia e-mail para o vendedor direto do pedido de venda.
*/
User Function fMail()
Local oSButton1,oSButton2,oGDe,oGroup,oSDe,oSPara,oGPara,oSCc,oGCc,oSBcc,oGBcc,oSAss,oGAss,oSMsg,oMMsg
Local oDlg
Local sGDe := "Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo."
Local sGPara := SPACE(100)
Local sGCc := SPACE(100)
Local sGBcc := SPACE(100)
Local sGAss := SPACE(100)
Local sGAnx := SPACE(100)
Local cMMsg
Local sMsg := ''
oDlg := MsDialog():New(10,10,448,300,"Envio de e-mail para Vendedor",,,,,,.T.,,,.T.)
oGroup := tGroup():New(2,2,220,144,"Dados para envio de e-mail: ",oDlg,,,.T.)
oSDe := tSay():New(17,5,{||"De:"},oDlg,,,,,,.T.,,,50,20)
oGDe := tGet():New(15,40,{|u| IIF(PCount()>0,sGDe:=u,sGDe)},oDlg,100,10,,{|o| !Empty(AllTrim(sGDe))},,,,,,.T.,,,,,,,,,,'sGDe')
oSPara := tSay():New(37,5,{||"Para:"},oDlg,,,,,,.T.,,,50,20)
oGPara := tGet():New(35,40,{|u| IIF(PCount()>0,sGPara:=u,sGPara)},oDlg,100,10,,{|o| !Empty(AllTrim(sGPara))},,,,,,.T.,,,,,,,,,,'sGPara')
oSCc := tSay():New(57,5,{||"Cc:"},oDlg,,,,,,.T.,,,50,20)
oGCc := tGet():New(55,40,{|u| IIF(PCount()>0,sGCc:=u,sGCc)},oDlg,100,10,,,,,,,,.T.,,,,,,,,,,'sGCc')
oSBcc := tSay():New(77,5,{||"Bcc:"},oDlg,,,,,,.T.,,,50,20)
oGBcc := tGet():New(75,40,{|u| IIF(PCount()>0,sGBcc:=u,sGBcc)},oDlg,100,10,,,,,,,,.T.,,,,,,,,,,'sGBcc')
oSAss := tSay():New(97,5,{||"Assunto:"},oDlg,,,,,,.T.,,,50,20)
oGAss := tGet():New(95,40,{|u| IIF(PCount()>0,sGAss:=u,sGAss)},oDlg,100,10,,,,,,,,.T.,,,,,,,,,,'sGAss')
oSMsg := tSay():New(157,5,{||"Mensagem:"},oDlg,,,,,,.T.,,,50,20)
oMMsg := tMultiget():New(155,40,{|u| IIF(PCount()>0,cMMsg:=u,cMMsg)},oDlg,100,50,,,,,,.T.)
oSButton1 := SButton():New(200,85,1,{||Processa({ ||enviar(sGDe,sGPara,sGCc,sGBcc,sGAss,sGAnx,cMMsg)},"AGUARDE")},oDlg,.T.,,)
oSButton2 := SButton():New(200,115,2,{||oDlg:END()},oDlg,.T.,,)
oDlg:Activate(,,,.T.,,,,,)
Return
STATIC FUNCTION enviar(sGDe,sGPara,sGCc,sGBcc,sGAss,sGAnx,cMMsg)
Local cServer := Alltrim(GetMV("MV_WFSMTP")) //servidor para envio de email
Local cAccount := Alltrim(GetMV("MV_WFMAIL")) // nome da conta a ser utilizada
Local cPassword := Alltrim(GetMV("MV_WFPASSW")) // Define a senha da conta a ser usada para autenticação
Local oServer
Local oMessage
Local nNumMsg := 0
Local nTam := 0
Local nI := 0
//Cria a conexão com o server STMP ( Envio de e-mail )
oServer := TMailManager():New()
// Usa SSL na conexao
oServer:setUseSSL(GETMV('MV_YUSESSL'))
oServer:SetUseTLS(GETMV('MV_YUSETLS'))
oServer:Init( "", cServer, cAccount, cPassword, 0, 587 )
//seta um tempo de time out com servidor de 1min I
If oServer:SetSmtpTimeOut( 60 ) != 0
sMsg := "Falha ao setar o time out"
Conout(sMsg)
Alert(sMsg)
Return .F.
EndIf
//realiza a conexão SMTP
// Conecta ao servidor
nErr := oServer:smtpConnect()
If nErr <> 0
sMsg := "[ERROR]Falha ao conectar: " + oServer:getErrorString(nErr)
oServer:smtpDisconnect()
Conout(sMsg)
Alert(sMsg)
return .F.
Endif
// Realiza autenticacao no servidor
nErr := oServer:smtpAuth(cAccount, cPassword)
If nErr <> 0
sMsg := "[ERROR]Falha ao autenticar: " + oServer:getErrorString(nErr)
oServer:smtpDisconnect()
Conout(sMsg)
Alert(sMsg)
return .F.
Endif
//Apos a conexão, cria o objeto da mensagem
oMessage := TMailMessage():New() //Limpa o objeto
oMessage:Clear()
//Popula com os dados de envio
oMessage:cFrom := Alltrim(sGDe)
oMessage:cTo := Alltrim(sGPara)
oMessage:cCc := Alltrim(sGCc)
oMessage:cBcc := Alltrim(sGBcc)
oMessage:cSubject := Alltrim(sGAss)
oMessage:cBody := cMMsg
nErr := oMessage:Send( oServer )
if nErr <> 0
sMsg := "[ERROR]Nao conseguiu enviar o e-mail: " + oServer:GetErrorString( nErr )
conout( sMsg )
Alert(sMsg)
Return .F.
endif
//Desconecta do servidor
If oServer:SmtpDisconnect() != 0
sMsg := "Erro ao desconectar do servidor SMTP"
Conout(sMsg)
Alert(sMsg)
Return .F.
EndIf
RETURN .T.
Mas como já falado o serviço esta normal. Então creio que estou comendo mosca em uma parte que eu ainda não identifiquei. Gostaria de um ajuda.
Obrigado.
Segue abaixo o fonte.
#Include "protheus.ch"
/*
Autor Pedro Palaoro
Data: 05/05/2014
@Envia e-mail para o vendedor direto do pedido de venda.
*/
User Function fMail()
Local oSButton1,oSButton2,oGDe,oGroup,oSDe,oSPara,oGPara,oSCc,oGCc,oSBcc,oGBcc,oSAss,oGAss,oSMsg,oMMsg
Local oDlg
Local sGDe := "Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo."
Local sGPara := SPACE(100)
Local sGCc := SPACE(100)
Local sGBcc := SPACE(100)
Local sGAss := SPACE(100)
Local sGAnx := SPACE(100)
Local cMMsg
Local sMsg := ''
oDlg := MsDialog():New(10,10,448,300,"Envio de e-mail para Vendedor",,,,,,.T.,,,.T.)
oGroup := tGroup():New(2,2,220,144,"Dados para envio de e-mail: ",oDlg,,,.T.)
oSDe := tSay():New(17,5,{||"De:"},oDlg,,,,,,.T.,,,50,20)
oGDe := tGet():New(15,40,{|u| IIF(PCount()>0,sGDe:=u,sGDe)},oDlg,100,10,,{|o| !Empty(AllTrim(sGDe))},,,,,,.T.,,,,,,,,,,'sGDe')
oSPara := tSay():New(37,5,{||"Para:"},oDlg,,,,,,.T.,,,50,20)
oGPara := tGet():New(35,40,{|u| IIF(PCount()>0,sGPara:=u,sGPara)},oDlg,100,10,,{|o| !Empty(AllTrim(sGPara))},,,,,,.T.,,,,,,,,,,'sGPara')
oSCc := tSay():New(57,5,{||"Cc:"},oDlg,,,,,,.T.,,,50,20)
oGCc := tGet():New(55,40,{|u| IIF(PCount()>0,sGCc:=u,sGCc)},oDlg,100,10,,,,,,,,.T.,,,,,,,,,,'sGCc')
oSBcc := tSay():New(77,5,{||"Bcc:"},oDlg,,,,,,.T.,,,50,20)
oGBcc := tGet():New(75,40,{|u| IIF(PCount()>0,sGBcc:=u,sGBcc)},oDlg,100,10,,,,,,,,.T.,,,,,,,,,,'sGBcc')
oSAss := tSay():New(97,5,{||"Assunto:"},oDlg,,,,,,.T.,,,50,20)
oGAss := tGet():New(95,40,{|u| IIF(PCount()>0,sGAss:=u,sGAss)},oDlg,100,10,,,,,,,,.T.,,,,,,,,,,'sGAss')
oSMsg := tSay():New(157,5,{||"Mensagem:"},oDlg,,,,,,.T.,,,50,20)
oMMsg := tMultiget():New(155,40,{|u| IIF(PCount()>0,cMMsg:=u,cMMsg)},oDlg,100,50,,,,,,.T.)
oSButton1 := SButton():New(200,85,1,{||Processa({ ||enviar(sGDe,sGPara,sGCc,sGBcc,sGAss,sGAnx,cMMsg)},"AGUARDE")},oDlg,.T.,,)
oSButton2 := SButton():New(200,115,2,{||oDlg:END()},oDlg,.T.,,)
oDlg:Activate(,,,.T.,,,,,)
Return
STATIC FUNCTION enviar(sGDe,sGPara,sGCc,sGBcc,sGAss,sGAnx,cMMsg)
Local cServer := Alltrim(GetMV("MV_WFSMTP")) //servidor para envio de email
Local cAccount := Alltrim(GetMV("MV_WFMAIL")) // nome da conta a ser utilizada
Local cPassword := Alltrim(GetMV("MV_WFPASSW")) // Define a senha da conta a ser usada para autenticação
Local oServer
Local oMessage
Local nNumMsg := 0
Local nTam := 0
Local nI := 0
//Cria a conexão com o server STMP ( Envio de e-mail )
oServer := TMailManager():New()
// Usa SSL na conexao
oServer:setUseSSL(GETMV('MV_YUSESSL'))
oServer:SetUseTLS(GETMV('MV_YUSETLS'))
oServer:Init( "", cServer, cAccount, cPassword, 0, 587 )
//seta um tempo de time out com servidor de 1min I
If oServer:SetSmtpTimeOut( 60 ) != 0
sMsg := "Falha ao setar o time out"
Conout(sMsg)
Alert(sMsg)
Return .F.
EndIf
//realiza a conexão SMTP
// Conecta ao servidor
nErr := oServer:smtpConnect()
If nErr <> 0
sMsg := "[ERROR]Falha ao conectar: " + oServer:getErrorString(nErr)
oServer:smtpDisconnect()
Conout(sMsg)
Alert(sMsg)
return .F.
Endif
// Realiza autenticacao no servidor
nErr := oServer:smtpAuth(cAccount, cPassword)
If nErr <> 0
sMsg := "[ERROR]Falha ao autenticar: " + oServer:getErrorString(nErr)
oServer:smtpDisconnect()
Conout(sMsg)
Alert(sMsg)
return .F.
Endif
//Apos a conexão, cria o objeto da mensagem
oMessage := TMailMessage():New() //Limpa o objeto
oMessage:Clear()
//Popula com os dados de envio
oMessage:cFrom := Alltrim(sGDe)
oMessage:cTo := Alltrim(sGPara)
oMessage:cCc := Alltrim(sGCc)
oMessage:cBcc := Alltrim(sGBcc)
oMessage:cSubject := Alltrim(sGAss)
oMessage:cBody := cMMsg
nErr := oMessage:Send( oServer )
if nErr <> 0
sMsg := "[ERROR]Nao conseguiu enviar o e-mail: " + oServer:GetErrorString( nErr )
conout( sMsg )
Alert(sMsg)
Return .F.
endif
//Desconecta do servidor
If oServer:SmtpDisconnect() != 0
sMsg := "Erro ao desconectar do servidor SMTP"
Conout(sMsg)
Alert(sMsg)
Return .F.
EndIf
RETURN .T.
Por favor Acessar ou Registrar para participar da conversa.
- pedropalaoro
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 6
- Obrigados Recebidos: 0
10 anos 6 meses atrás #22557
por pedropalaoro
Respondido por pedropalaoro no tópico E-mail não enviando, erro no oMessage:Send
Pessoal
Desconsiderem...realmente era o servidor de e-mail que estava errado.
Mesmo assim obrigado.
Desconsiderem...realmente era o servidor de e-mail que estava errado.
Mesmo assim obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- E-mail não enviando, erro no oMessage:Send
Tempo para a criação da página:0.147 segundos