FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Mail con CDO y TLS
Posts: 838
Joined: Wed Aug 22, 2007 10:09 AM
Mail con CDO y TLS
Posted: Sat Nov 01, 2014 09:21 AM

Hola compa帽eros:

Estoy intentando hacer que CDO env铆e emails contra un servidor que 煤nicamente se autentifica por TLS, smtp.office365.com, pero no lo consigo.

驴Alguno lo ha logrado?.

Muchas gracias por vuestra atenci贸n.

Saludos / Regards,



FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Posts: 150
Joined: Tue Jul 15, 2008 07:12 PM
Re: Mail con CDO y TLS
Posted: Mon Nov 03, 2014 11:22 AM

yo lo hago de esta forma y funciona

Function GMAILBK (cDestino,cAsunto,cTexto,cAdjunto )

Local oEmailCfg,oEmailMsg,oError,cHtml

Local cServer:= GetPvProfString("Enviador","SERVERSTP" ,"", cIniFile)
Local nPortEmail:=VAL(GetPvProfString("Enviador","EMAILPUERTO","25", cIniFile))
Local cEmailFrom:=GetPvProfString("Enviador","EMAILFROM" ,"", cIniFile)
Local cEmailUser:=GetPvProfString("Enviador","EMAILUSER" ,"", cIniFile)
Local cEmailPass:=GetPvProfString("Enviador","EMAILPASSW" ,"", cIniFile)
Local cEmailSSL:=GetPvProfString("Enviador","EMAILSSL" ,"NO", cIniFile)

DEFAULT cAdjunto:=""
DEFAULT cAsunto :=""
DEFAULT cTexto := ""

if Empty(cDestino )
msgAlert("no ha puesto un destinatario")
Return .f.
endif

TRY
oEmailCfg := CREATEOBJECT( "CDO.Configuration" )
WITH OBJECT oEmailCfg:Fields
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ):Value := cServer //"smtp.fibertel.com.ar" //"smtp.live.com" ///"smtp.gmail.com"
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ):Value := nPortEmail //25 //465
:Item( "http://schemas.microsoft.com/cdo/configuration/sendusing" ):Value := 2 // Remote SMTP = 2, local = 1
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" ):Value := .T.
if cEmailSSL='NO'
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value := .F.
else
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value := .T.
endif
:Item( "http://schemas.microsoft.com/cdo/configuration/sendusername" ):Value := cEmailUser
:Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword" ):Value := cEmailPass
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"):Value := 30
:Update()
END WITH
CATCH oError
MsgInfo( "No se ha enviado el " + ";" + ;
"Error: " + TRANSFORM(oError:GenCode, NIL) + ";" + ;
"SubC: " + TRANSFORM(oError:SubCode, NIL) + ";" + ;
"OSCode: " + TRANSFORM(oError:OsCode, NIL) + ";" + ;
"SubSystem: " + TRANSFORM(oError:SubSystem, NIL) + ";" + ;
"Message: " + oError:Description )
END
oError:=NIL

TRY
oEmailMsg := CREATEOBJECT ( "CDO.Message" )
WITH OBJECT oEmailMsg
:Configuration = oEmailCfg
:From = chr(34)+Empresa+' '+chr(34) + '<'+cEmailFrom+'>' // This will be displayed in the From (The email id does not appear)
:To = cDestino
:Subject = cAsunto
:MDNRequested = .T.
:TextBody = cTexto
if !Empty(cAdjunto)
:AddAttachment(cAdjunto)
endif

END WITH
oEmailMsg:Send()

CATCH oError
MsgInfo("No se ha enviado el mensaje" + ";" + CRLF+ ;
"Error: " + TRANSFORM(oError:GenCode, NIL) + ";" + CRLF+;
"SubC: " + TRANSFORM(oError:SubCode, NIL) + ";" + CRLF+ ;
"OSCode: "+ TRANSFORM(oError:OsCode, NIL) + ";" + CRLF +;
"SubSystem: " + TRANSFORM(oError:SubSystem, NIL) + ";" +CRLF+ ;
"Message: " + oError:Description )
END

// MsgInfo("Correo enviado correctamente")

Return .T.
//-----------

Posts: 838
Joined: Wed Aug 22, 2007 10:09 AM
Re: Mail con CDO y TLS
Posted: Tue Nov 04, 2014 08:11 AM

Hola:

Muchas gracias, para SSL s铆 logro que me funcione pero no para TLS, es en TLS donde tengo el problema.

驴Tu has conseguido usar, por ejemplo, el smtp de office365?.

Muchas gracias por tu atenci贸n.

Saludos / Regards,



FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Mail con CDO y TLS
Posted: Tue Nov 04, 2014 02:49 PM

Postinelli

por que me sale error este peque帽o programa para enviar correo
ERROR:DISP_E_MEMBERNOTFOUND

Include "FiveWin.Ch"

-------------------------------------------------
Function Main()
-------------------------------------------------

LOCAL loCfg, loMsg, oError, isError := .F.

local cSMTP := "smtp.gmail.com"
Local cPuerto := 465
Local cLogin := "jbricenotapia@gmail.com"
Local cPassword := "xxxxx"
local cRemitente:= "jbricenotapia@gmail.com"
Local cDestino := "peflores@terra.cl"
Local cAsunto := "prueba con Gestin "
Local cMensaje := "Cuerpo del mensaje"+CRLF+CRLF+CRLF
local cSSL := .T., cAuth := .T.
local cFichero := nil

// Control autentificaci贸n via SSL
IF alltrim( cSMTP ) = "smtp.live.com"
cSSL := .T.
ELSEIF alltrim( cSMTP ) = "smtp.gmail.com"
cSSL := .T.
ENDIF

// Internet
TRY

loCfg := CREATEOBJECT( &quot;CDO.Configuration&quot; )
 WITH OBJECT loCfg:Fields
  :Item( &quot;http://schemas.microsoft.com/cdo/configuration/smtpserver&quot; ):Value       := cSMTP  // &quot;smtp.gmail.com&quot;
  :Item( &quot;http://schemas.microsoft.com/cdo/configuration/smtpserverport&quot; ):Value   := cPuerto  //465
  :Item( &quot;http://schemas.microsoft.com/cdo/configuration/sendusing&quot; ):Value        := 2
  :Item( &quot;http://schemas.microsoft.com/cdo/configuration/smtpauthenticate&quot; ):Value := cAuth //.T.
  :Item( &quot;http://schemas.microsoft.com/cdo/configuration/smtpusessl&quot; ):Value       := cSSL  //  .T.
  :Item( &quot;http://schemas.microsoft.com/cdo/configuration/sendusername&quot; ):Value     := cLogin     //tu cuenta de correo de salida
  :Item( &quot;http://schemas.microsoft.com/cdo/configuration/sendpassword&quot; ):Value     := cPassword   //&quot;&quot; //con tu clave gmail. en este caso
  :Item( &quot;http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout&quot;):Value := 30

  :Update()
END WITH


loMsg := CREATEOBJECT ( &quot;CDO.Message&quot; )
WITH OBJECT loMsg
  :Configuration = loCfg
  :From = cRemitente
  :To = cDestino
  :Subject = cAsunto
  :MDNRequested = .T.
  :TextBody = cMensaje
  :Send()
END WITH

CATCH oError
isError := .T.

END

IF isError = .F.
MsgInfo( "Mensaje enviado correctamente", " A V I S O " )
ELSE
MsgStop("ERROR: Se ha producido un error al enviar un mensaje al buzn "+cDestino+CRLF+CRLF+"Descripci贸n del Error: "+oError:Description, " E R R O R ")
ENDIF

return nil

Continue the discussion