enviar una mail con una cuenta gmail

Post Reply
User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

enviar una mail con una cuenta gmail

Post by fgondi »

Como puedo enviar un email (Smtp) a través de una cuenta gmail

He probado con Hb_Sendmail pero genera un error

Code: Select all

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 GHE Sistemas Informáticos
MGA
Posts: 1219
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Re: enviar una mail con una cuenta gmail

Post by MGA »

busca por CDOSYS no forum!
ubiratanmga@gmail.com

FWH17.04
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: enviar una mail con una cuenta gmail

Post by mastintin »

yo uso esta funcion a diario:

Code: Select all


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.

 
User avatar
fgondi
Posts: 636
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España
Contact:

Re: enviar una mail con una cuenta gmail

Post by fgondi »

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

enviado desde tapatalk
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
User avatar
TecniSoftware
Posts: 213
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

Re: enviar una mail con una cuenta gmail

Post by TecniSoftware »

mastintin wrote:yo uso esta funcion a diario:

Code: Select all


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
postinelli
Posts: 128
Joined: Tue Jul 15, 2008 7:12 pm
Location: Argentina

Re: enviar una mail con una cuenta gmail

Post by postinelli »

User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: enviar una mail con una cuenta gmail

Post by mastintin »

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 .
postinelli
Posts: 128
Joined: Tue Jul 15, 2008 7:12 pm
Location: Argentina

Re: enviar una mail con una cuenta gmail

Post by postinelli »

probado en XP y funciona perfecto
Post Reply