26 Abr 2018 19:27
Enviar email já está resolvido!
Agora, Gostaria de aproveitar o tópico para saber se algum colega consegue receber e-mails via código e qual método utiliza.
20 Mai 2018 06:11
*************************************************************************************************************************************
IF lShowMsg
aProgress[6]:SetText( "Criando variáveis de configurações..." )
aProgress[2]:SetPos(40)
SYSREFRESH()
ENDIF
TRY
oCfg := CREATEOBJECT( "CDO.Configuration" )
WITH OBJECT oCfg:Fields
:Item("http://schemas.microsoft.com/cdo/configuration/smtpserver"):Value:= cServ
:Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport"):Value:= nPort
:Item("http://schemas.microsoft.com/cdo/configuration/sendusing"):Value:= 2
:Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"):Value:= nAut
:Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl"):Value:= nSSL
:Item("http://schemas.microsoft.com/cdo/configuration/sendusername"):Value:= cUser
:Item("http://schemas.microsoft.com/cdo/configuration/sendpassword"):Value:= cPass
:Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"):Value:= 60
:Update()
END WITH
CATCH oError
IF lShowMsg
Pc_UnProgress( aProgress )
Pc_Alert( "Não foi possível criar o EMAIL!" + CRLF + "Verifique configurações de e-mail" + CRLF + "Erro: " + IF( oError:Description = NIL, " ", oError:Description ) )
ENDIF
RETURN( .F. )
END
IF lShowMsg
aProgress[2]:SetPos(60)
aProgress[6]:SetText( "Criando email..." )
SYSREFRESH()
ENDIF
TRY
oMsg := CREATEOBJECT( "CDO.Message" )
WITH OBJECT oMsg
:MDNRequested := .T.
:Configuration := oCfg
:From := cFrom
:To := cTo
:Subject := cSubject
:Sender := cSender
:Replyto := cFrom
IF lHtml
:HTMLBody = "<h3>" + cBody + "</h3>"
ELSE
:TextBody := cBody
ENDIF
FOR nFor = 1 TO LEN( aFiles )
IF FILE( aFiles[ nFor ] )
IF lShowMsg
aProgress[2]:SetPos( 80 + nFor )
aProgress[6]:SetText( "Anexando arquivos..." )
SYSREFRESH()
ENDIF
:AddAttachment( aFiles[ nFor ] )
ENDIF
NEXT
:Fields:Update()
IF lShowMsg
aProgress[2]:SetPos( 100 + LEN( aFiles ) )
aProgress[6]:SetText( "Enviando E-MAIL..." )
SYSREFRESH()
ENDIF
SysWait(0.5)
:Send()
END WITH
CATCH oError
IF lShowMsg
Pc_UnProgress( aProgress )
Pc_Alert( "Erro no Envio de E-MAIL: " + CRLF + cSubject + CRLF + "Para: " + cTo + CRLF + "Erro: " + IF( oError:Description = NIL, " ", oError:Description ) )
ENDIF
RETURN( .F. )
END
IF lShowMsg
Pc_UnProgress( aProgress )
ENDIF
RETURN( .T. )
21 Mai 2018 11:40
21 Mai 2018 12:15
oCfg := Nil
oMsg := Nil
21 Mai 2018 15:28
21 Mai 2018 15:54
PUBLIC NewAnexo
cXml := cDirPleno + "\REMESSA\ENVIADAS\" + ALLTRIM( cChave ) + "nfe.xml"
cAnexoNfeCAN := cDirPleno + "\REMESSA\PROTOCOLOS\" + ALLTRIM( cChave ) + "-can.xml"
cAnexos := "C:\NFEPDF\NFE" + ALLTRIM( STR(NFECOD2) + ".PDF" )
cAnexoNfeCCe := cDirPleno + "\REMESSA\PROTOCOLOS\" + ALLTRIM( cChave ) + ;
"-CCe"+ALLTRIM(STR(nNumCCe))+".xml"
NewAnexo := { cXml, cAnexoNfeCAN, cAnexos, cAnexoNfeCCe } //-> Arquivo para anexar - Email direto
aFiles := { cXml, cAnexoNfeCAN, cAnexos, cAnexoNfeCCe } //-> Arquivo para anexar: Aqui e no windows live
FOR x := 1 To Len( NewAnexo ) // Anexos dos Email aqui
IF NewAnexo[x] <> NIL
oMsg:AddAttachment(ALLTRIM(NewAnexo[x]))
ENDIF
NEXT
22 Mai 2018 20:09
20 Set 2020 11:51
Só tenho um problema que não consegui resolver.
Se eu anexar um arquivo, o mesmo fica "bloqueado" pelo windows.
20 Set 2020 20:07
20 Set 2020 23:28
21 Set 2020 11:20
try
oCfg := Win_OleCreateObject( "CDO.Configuration" )
with Object oCfg:Fields
:Item( cdoSMTPServer ):Value := alltrim( cMailServer )
:Item( cdoSMTPServerPort ):Value := nPort
:Item( cdoSendUsing ):Value := nSendOpt
if lAuth
:Item( cdoSMTPAuthenticate ):Value := 1
:Item( cdoSendUserName ):Value := alltrim( cUser )
:Item( cdoSendPassword ):Value := alltrim( cPass )
:Item( cdoSMTPUseSSL ):Value := .T.
endif
:Item( cdoSMTPConnectionTimeout ):Value := 30
:Update()
end with
oMsg := Win_OleCreateObject( "CDO.Message" )
with Object oMsg
:Configuration := oCfg
:From := Trim( cFrom )
:To := Trim( cTo )
:Subject := Trim( cSubject )
:HTMLBody := Trim( WIN_ANSITOOEM(cBody) )
if !empty( aAttach )
for nEle := 1 To Len( aAttach )
:AddAttachment( alltrim( aAttach[ nEle ] ) )
next
endif
if !Empty( cBCC )
:BCC := Trim( cBCC )
endif
:Send()
end with
catch oError
*****************************************************************************
********** Quando passa por aqui, o arquivo fica bloqueado ********
*****************************************************************************
cMsg := "Não consegui enviar email para [" + cTo + "]" + CRLF + CRLF + ;
"Erro CDO.: " + hb_valtoexp(win_oleErrorText()) + CRLF + ;
"Error....: " + hb_valtostr( oError:GenCode) + CRLF + ;
"SubC.....: " + hb_valtostr( oError:SubCode ) + CRLF + ;
"OSCode...: " + hb_valtostr( oError:OsCode ) + CRLF + ;
"SubSystem: " + hb_valtostr( oError:SubSystem ) + CRLF + ;
"Mensagem.: " + oError:Description + CRLF + ;
"Operação.: [" + hb_valtostr(oError:Operation) + "]" + CRLF + ;
"Argumento: [" + hb_valtostr(oError:Args) + "]" + CRLF + ;
alerta( cMsg )
end try
oCfg := NIL
oMsg := NIL
21 Set 2020 13:53
...
:Send()
...
...
? :Send()
...
21 Set 2020 14:59
Não consegui enviar email para [xsdfsdfsd]
Erro CDO.:
Error....: 1
SubC.....: 1007
OSCode...: -2147352567
SubSystem: WINOLE
Mensagem.: Pelo menos um destinatário é necessário, mas nenhum foi encontrado. (0x8004020C)
Operação.: [SEND]
Argumento: [NIL]
try
...
catch oError
...
oMsg:Attachments:DeleteAll()
...
end try
oCfg := NIL
oMsg := NIL
21 Set 2020 23:59
rossine escreveu:Olá Rochinha,
O Erro ocorre instantaneamente sem precisar do timetout, mesmo eu mudando para 60 , ocorre o erro.
Eu usei um "email" ficticio para teste e ocorre o erro abaixo:
- Código:
Não consegui enviar email para [xsdfsdfsd]
Erro CDO.:
Error....: 1
SubC.....: 1007
OSCode...: -2147352567
SubSystem: WINOLE
Mensagem.: Pelo menos um destinatário é necessário, mas nenhum foi encontrado. (0x8004020C)
Operação.: [SEND]
Argumento: [NIL]
Eu até tentei desviuncular os arquivos anexados a mensagem, mas não resolveu:
- Código:
try
...
catch oError
...
oMsg:Attachments:DeleteAll()
...
end try
oCfg := NIL
oMsg := NIL
...então acredito ter outro caminho para resolver isto ou deve ser algum bug mesmo da CDOSYS.
Obrigado,
22 Set 2020 13:33
try
...
catch oError
cMsg := "Não consegui enviar email para [" + cTo + "]" + CRLF + CRLF + ;
"Erro CDO.: " + win_oleErrorText() + CRLF + ;
"Error....: " + hb_valtostr( oError:GenCode) + CRLF + ;
"SubC.....: " + hb_valtostr( oError:SubCode ) + CRLF + ;
"OSCode...: " + hb_valtostr( oError:OsCode ) + CRLF + ;
"SubSystem: " + hb_valtostr( oError:SubSystem ) + CRLF + ;
"Mensagem.: " + oError:Description + CRLF + ;
"Operação.: [" + hb_valtostr(oError:Operation) + "]" + CRLF + ;
"Argumento: [" + hb_valtostr(oError:Args) + "]" + CRLF
lRet := .F.
end try