Necesito una clase para envio de eMail que funcione con FW

Necesito una clase para envio de eMail que funcione con FW

Postby gsabattino » Sun May 24, 2015 5: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
User avatar
gsabattino
 
Posts: 102
Joined: Fri Oct 14, 2005 12:03 am
Location: Valencia, Venezuela

Re: Necesito una clase para envio de eMail que funcione con FW

Postby jnavas » Mon May 25, 2015 1:02 am

jean Carlos
Requieres tener outook definido,
Saludos, cuando puedas escribeme jnavas@datapronet.com

Code: Select all  Expand view
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

 
User avatar
jnavas
 
Posts: 479
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela

Re: Necesito una clase para envio de eMail que funcione con FW

Postby VitalJavier » Thu Jun 11, 2015 4:11 pm

Contacta con William, yo tengo un activex que el me paso y hasta la fecha funciona muy bien
User avatar
VitalJavier
 
Posts: 241
Joined: Mon Jun 10, 2013 6:40 pm

Re: Necesito una clase para envio de eMail que funcione con FW

Postby Armando » Thu Jun 11, 2015 5: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
Last edited by Armando on Thu Jun 11, 2015 7:24 pm, edited 1 time in total.
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
User avatar
Armando
 
Posts: 3209
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Necesito una clase para envio de eMail que funcione con FW

Postby karinha » Thu Jun 11, 2015 6:36 pm

Code: Select all  Expand view

#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
User avatar
karinha
 
Posts: 7805
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Necesito una clase para envio de eMail que funcione con FW

Postby devtuxtla » Mon Jun 15, 2015 3: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.
devtuxtla
 
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: Necesito una clase para envio de eMail que funcione con FW

Postby karinha » Mon Jun 15, 2015 4: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
User avatar
karinha
 
Posts: 7805
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Necesito una clase para envio de eMail que funcione con FW

Postby devtuxtla » Tue Jun 16, 2015 8: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.
devtuxtla
 
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: Necesito una clase para envio de eMail que funcione con FW

Postby guapilescity » Wed Jun 17, 2015 8:48 pm

karinha wrote:
Code: Select all  Expand view

#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
 


guapilescity
 
Posts: 22
Joined: Thu Nov 01, 2012 1:23 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 68 guests