FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Necesito una clase para envio de eMail que funcione con FW
Posts: 102
Joined: Fri Oct 14, 2005 12:03 AM
Necesito una clase para envio de eMail que funcione con FW
Posted: Sun May 24, 2015 05:18 PM

Saludos a Todos...

Aun cuando tengo algunos añitos desarrollando con xHarbour+FW, hay temas que nunca tuve la necesidad de tocar y que se me están presentando a estas alturas...

Necesito una clase que realmente funcione para enviar eMail's desde una aplicación FW+xH usando cualquier servidor de correos SMTP (GMail, Hotmail/Outlook, Yahoo, y demás proveedores de servicios que incluyan SMTP)...

Leyendo post's relacionados con el tema veo que está el famoso CDO... que, visto por encimita, me pareció un "tiro al piso"... pero al implementarlo me encontré con que funciona bien con unas cuentas y con otras no... funciona con bien unos servidores SMTP y con otros no... así que la alegría no me duró mucho tiempo... lo mas típico es que de el mensaje de error "error: 1001; SubC: 3; OSCode: 0; SubSystem: CDO.Message; Message: DISP_E_MEMBERNOTFOUND"...

ejemplo: con GMail, configuración smtp.gmail.com/465/SSL/Auth/gsabattino@gm.com/123456 se envían los correos perfecto con sus adjuntos... pero al cambiar la configuración a smtp.gmail.com/465/SSL/Auth/guayoyosoft@gm.com/654321 da el error comentado... (coloco intencionalmente gm.com como referencia a gmail.com)...
se puede notar que la única diferencia es la cuenta desde la cual se desea enviar el correo... que explicación hay a que funcione en el primer caso y en el segundo no???
he tenido especial cuidado en colocar correctamente los parámetros requeridos por cada servidor SMTP, así como los datos correctos de la cuenta (usuario/clave) y siempre el mismo resultado... funciona con unos y con otros no...

Mirando los post's relacionados con el tema veo que muchos compañeros han tenido mas o menos el mismo problema... he probado las soluciones sugeridas (las pocas que dan) y CDO sigue negándose a funcionar con ciertas cuentas y/o ciertos servidores SMTP...

Entonces la gran pregunta...
Si aparentemente CDO no es algo que funcione siempre, que otra solucion existe para integrar el envío de eMail's a una aplicación FW+xHarbour???

Agradecido de antemano por las Orientaciones y/o comentarios...

Giancarlo Sabattino
Valencia, Venezuela

Posts: 492
Joined: Wed Nov 16, 2005 12:03 PM
Re: Necesito una clase para envio de eMail que funcione con FW
Posted: Mon May 25, 2015 01:02 AM
jean Carlos
Requieres tener outook definido,
Saludos, cuando puedas escribeme jnavas@datapronet.com

Code (fw): Select all Collapse
FUNCTION ENVIARMAIL(cTitle,aMail,cFile)
    LOCAL oOutLook,oMensaje,oAdjunto
    LOCAL cCuerpo:="",I

    DEFAULT cTitle :="Presupuesto Desde AdaptaPro",;
            cFile  :="c:\adaptapro\temp\ctz-0000000124.html"

    cCuerpo:=MEMOREAD(cFile)
    
    IF Empty(cCuerpo) 
       MsgMemo("Archivo "+cFile+", está vacio.")
       RETURN .F.
    ENDIF

    IF Empty(aMail) 
       MsgMemo("No hay Cuentas de Correo")
       RETURN .F.
    ENDIF

    IF Empty(aMail)
       AADD(aMail,"jnavas@datapronet.com")
    ENDIF
 
    oOutLook:=TOleAuto():New("Outlook.Application")
 
    SysRefresh(.T.)

    oMensaje:=oOutLook:Invoke("CreateItem",0)
    oMensaje:Set("To",aMail[1])

    FOR I=2 TO LEN(aMail)
//   oMensaje:Set("CC","patricia@datapronet.com")
     oMensaje:Set("CC",aMail[I])
    NEXT I

    SysRefresh(.T.)

    oMensaje:Set("Subject",cTitle)
    oMensaje:Set("HTMLBody",cCuerpo)

    SysRefresh(.T.)

    oAdjunto := oMensaje:Invoke("Attachments")
    oMensaje:Invoke("Send")
 
    oAdjunto:End()
    oMensaje:End()

    oOutLook:End()
 
RETURN .T.
// EOF
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: Necesito una clase para envio de eMail que funcione con FW
Posted: Thu Jun 11, 2015 04:11 PM

Contacta con William, yo tengo un activex que el me paso y hasta la fecha funciona muy bien

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Necesito una clase para envio de eMail que funcione con FW
Posted: Thu Jun 11, 2015 05:53 PM

Giancarlo:

Se que hay varias clases en FW que te hacen la labor, pero si puedes desprenderte de algunos dólares
te recomiendo MailBee http://www.afterlogic.com/purchase/email-components
Pueden envirar y recibir, leer encabezados, cuerpo del correo, adjuntos, y varios etc. etc.

Aclaro, no soy distribuidor, solo soy un usuario satisfecho.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Necesito una clase para envio de eMail que funcione con FW
Posted: Thu Jun 11, 2015 06:36 PM
Code (fw): Select all Collapse
#Include "FiveWin.ch"

Function ENVIA_ERRO()

   LOCAL oSmtp, oEMail
   LOCAL cSmtpUrl
   LOCAL cSubject, cFrom, cTo, cBody, cFile

   cSmtpUrl := "smtp://meuemail:senha@smtp.mail.yahoo.com.br"
   cFrom  := "meuemail@yahoo.com.br"
   cTo   := "meuemail@ymail.com"

   cSubject := [Envio de erro do programa]

   cFile  := "COMP.LOG" //cNOME

   cBody  := [Envio de erro do programa]

   oEMail := TIpMail():new()
   oEMail:setHeader( cSubject, cFrom, cTo )
   oEMail:setBody( cBody )
   oEMail:attachFile( cFile )

   //oEMail:hHeaders[ "Disposition-Notification-To" ] := cFrom // solicita confirmacao

   oSmtp := TIpClientSmtp():new( cSmtpUrl )

   IF oSmtp:open()

      oSmtp:sendMail( oEMail )

      oSmtp:close()

      MSGINFO( [Email enviado com sucesso], [Aviso] )

   ELSE

      MSGINFO( "Erro:", oSmtp:lastErrorMessage() )

   ENDIF

RETURN Nil

// FIM DO PROGRAMA


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 392
Joined: Tue Jul 29, 2008 01:55 PM
Re: Necesito una clase para envio de eMail que funcione con FW
Posted: Mon Jun 15, 2015 03:51 PM

Hola karinha

Estoy verificando la solucion que propones, pero requiere que la dll se registre en el registro de windows, tienes un ejemplo de como se puede registrar la dll en la pc del cliente ?

Gracias

Saludos

Visite Chiapas, el paraiso de México.
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Necesito una clase para envio de eMail que funcione con FW
Posted: Mon Jun 15, 2015 04:05 PM

Que DLL? no tiens que registrar nada. Solo hay tener un proveedor de correo en tu FTP. salu2.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 392
Joined: Tue Jul 29, 2008 01:55 PM
Re: Necesito una clase para envio de eMail que funcione con FW
Posted: Tue Jun 16, 2015 08:38 PM

Hola Karinha.

Una disculpa, no era para ti la pregunta...

Esta pregunta es para armando, en referencia a la opcion de mail que recomienda...

Armando...

Sabes como registrar la DLL en la pc del cliente, a traves de nuestra aplicacion para no molestar al cliente ?

Saludos

Visite Chiapas, el paraiso de México.
Posts: 22
Joined: Thu Nov 01, 2012 01:23 AM
Re: Necesito una clase para envio de eMail que funcione con FW
Posted: Wed Jun 17, 2015 08:48 PM
karinha wrote:
Code (fw): Select all Collapse
#Include "FiveWin.ch"

Function ENVIA_ERRO()

   LOCAL oSmtp, oEMail
   LOCAL cSmtpUrl
   LOCAL cSubject, cFrom, cTo, cBody, cFile

Prodrian explicarme  un poco mas que deber de ir en el  cSmtpUrl  cuando utilizamos gmail.com
por favor

   cSmtpUrl := "smtp://meuemail:senha@smtp.mail.yahoo.com.br"
   cFrom  := "meuemail@yahoo.com.br"
   cTo   := "meuemail@ymail.com"

   cSubject := [Envio de erro do programa]

   cFile  := "COMP.LOG" //cNOME

   cBody  := [Envio de erro do programa]

   oEMail := TIpMail():new()
   oEMail:setHeader( cSubject, cFrom, cTo )
   oEMail:setBody( cBody )
   oEMail:attachFile( cFile )

   //oEMail:hHeaders[ "Disposition-Notification-To" ] := cFrom // solicita confirmacao

   oSmtp := TIpClientSmtp():new( cSmtpUrl )

   IF oSmtp:open()

      oSmtp:sendMail( oEMail )

      oSmtp:close()

      MSGINFO( [Email enviado com sucesso], [Aviso] )

   ELSE

      MSGINFO( "Erro:", oSmtp:lastErrorMessage() )

   ENDIF

RETURN Nil

// FIM DO PROGRAMA



Continue the discussion