FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour enviar una mail con una cuenta gmail
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
enviar una mail con una cuenta gmail
Posted: Wed Oct 16, 2013 04:14 PM
Como puedo enviar un email (Smtp) a través de una cuenta gmail

He probado con Hb_Sendmail pero genera un error

Code (fw): Select all Collapse
Error BASE/1081  Operaci¢n no soportada: TIPCLIENTSMTP:new()
   Parameter   :
     [   1] = O   TIPCLIENTSMTP
     [   2] = C   smtps

Lista de la pila
----------------
    1    llamado por (b)ERRORSYS(255)
    2    llamado por TIPCLIENT:NEW(0)
    3    llamado por TIPCLIENTSMTP:NEW(0)
    4    llamado por HB_SENDMAIL(0)


Tengo incluidas las librerias: hbtip.lib hbssl.lib hbtipssl.lib libeay32.lib ssleay32.lib
y llamo a la función de la siguiente forma:
Hb_SendMail( "smtp.gmail.com", 465, "fernando@-----", "destino@------", NIL, NIL, 'HOLA', 'PRUEBA', NIL, "fernando@----", "contraseña", ;
'', NIL, NIL, .T., .F., NIL, NIL, NIL, .t. )
Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: enviar una mail con una cuenta gmail
Posted: Wed Oct 16, 2013 04:29 PM

busca por CDOSYS no forum!

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: enviar una mail con una cuenta gmail
Posted: Wed Oct 16, 2013 07:32 PM
yo uso esta funcion a diario:

Code (fw): Select all Collapse
Function GMAILME (cDestino,cAsunto,cTexto,cAdjunto )
Local oEmailCfg,oEmailMsg,oError,cHtml

DEFAULT cAdjunto:=""
DEFAULT cAsunto := "envio de Text"
DEFAULT cTexto := ""

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

  Mensaje("Enviando correo a "+ cDestino  )

cHtml:='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'
cHtml+='<HTML><HEAD>'
cHtml+='<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>'
cHtml+='<META name=GENERATOR content="MSHTML 8.00.6001.18783">'
cHtml+='<STYLE></STYLE>'
cHtml+='</HEAD>'
cHtml+='<BODY bgColor=#ffffff>'
cHtml+='<DIV><FONT size=2 face=Arial>'+cTexto +'</FONT></DIV></BODY></HTML>'

TRY
  oEmailCfg := CREATEOBJECT( "CDO.Configuration" )
  WITH OBJECT oEmailCfg:Fields
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ):Value := "smtp.gmail.com"
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ):Value := 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.
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value := .T.
     :Item( "http://schemas.microsoft.com/cdo/configuration/sendusername" ):Value := AllTrim(oApli:cMailServer)
     :Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword" ):Value := AllTrim(oApli:cMailPass ) // Password
     :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)+"Mi Empresa S.L."+chr(34)+ "<yo@tu.es>"    // lo que quieras que aparezca en el mensaje
        :To = cDestino   
        :Subject = cAsunto
        :MDNRequested = .T.
        :TextBody = cTexto
       // :HTMLBody = cHtml
        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

 Mensaje()

 MsgInfo("Correo enviado correctamente")

Return .T.
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: enviar una mail con una cuenta gmail
Posted: Thu Oct 17, 2013 06:23 AM

Muchas gracias.
Ya probado cdo y funciona de maravilla.
Pasare a usarlo.

enviado desde tapatalk

Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 244
Joined: Fri Oct 28, 2005 06:29 PM
Re: enviar una mail con una cuenta gmail
Posted: Wed Oct 23, 2013 12:00 PM
mastintin wrote:yo uso esta funcion a diario:

Code (fw): Select all Collapse
Function GMAILME (cDestino,cAsunto,cTexto,cAdjunto )
Local oEmailCfg,oEmailMsg,oError,cHtml

DEFAULT cAdjunto:=""
DEFAULT cAsunto := "envio de Text"
DEFAULT cTexto := ""

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

  Mensaje("Enviando correo a "+ cDestino  )

cHtml:='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'
cHtml+='<HTML><HEAD>'
cHtml+='<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>'
cHtml+='<META name=GENERATOR content="MSHTML 8.00.6001.18783">'
cHtml+='<STYLE></STYLE>'
cHtml+='</HEAD>'
cHtml+='<BODY bgColor=#ffffff>'
cHtml+='<DIV><FONT size=2 face=Arial>'+cTexto +'</FONT></DIV></BODY></HTML>'

TRY
  oEmailCfg := CREATEOBJECT( "CDO.Configuration" )
  WITH OBJECT oEmailCfg:Fields
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ):Value := "smtp.gmail.com"
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ):Value := 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.
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value := .T.
     :Item( "http://schemas.microsoft.com/cdo/configuration/sendusername" ):Value := AllTrim(oApli:cMailServer)
     :Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword" ):Value := AllTrim(oApli:cMailPass ) // Password
     :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)+"Mi Empresa S.L."+chr(34)+ "<yo@tu.es>"    // lo que quieras que aparezca en el mensaje
        :To = cDestino   
        :Subject = cAsunto
        :MDNRequested = .T.
        :TextBody = cTexto
       // :HTMLBody = cHtml
        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

 Mensaje()

 MsgInfo("Correo enviado correctamente")

Return .T.



Tu ejemplo me funcionó perfecto, muchas gracias por compartirlo.

Lo he usado bajo windows 7 sin problemas, pero queria preguntarte: para enviar mails de esta manera, es necesario instalar algo? algunos de mis clientes aún tienen pc con windows xp, funciona bien en xp? deben instalar algo?
Una de la cosas que habitualmente tengo que hacer es enviar facturas en pdf a los clientes y son muchos mails. Calculas que se podria hacerlo sin problemas usando CDO ?

Muchos saludos
Alejandro Cebolido

Buenos Aires, Argentina
Posts: 150
Joined: Tue Jul 15, 2008 07:12 PM
Re: enviar una mail con una cuenta gmail
Posted: Wed Oct 23, 2013 02:31 PM
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: enviar una mail con una cuenta gmail
Posted: Wed Oct 23, 2013 02:35 PM
TecniSoftware wrote:
para enviar mails de esta manera, es necesario instalar algo?

Yo creo que no hace falta instalar nada , cdo existe desde windows 2000 y supongo que xp lo lleve .
Posts: 150
Joined: Tue Jul 15, 2008 07:12 PM
Re: enviar una mail con una cuenta gmail
Posted: Wed Oct 23, 2013 05:51 PM

probado en XP y funciona perfecto

Continue the discussion