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
Necesito una clase para envio de eMail que funcione con FW
- gsabattino
- Posts: 100
- Joined: Fri Oct 14, 2005 12:03 am
- Location: Valencia, Venezuela
Re: Necesito una clase para envio de eMail que funcione con FW
jean Carlos
Requieres tener outook definido,
Saludos, cuando puedas escribeme jnavas@datapronet.com
Requieres tener outook definido,
Saludos, cuando puedas escribeme jnavas@datapronet.com
Code: Select all
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: 188
- Joined: Mon Jun 10, 2013 6:40 pm
Re: Necesito una clase para envio de eMail que funcione con FW
Contacta con William, yo tengo un activex que el me paso y hasta la fecha funciona muy bien
Re: Necesito una clase para envio de eMail que funcione con FW
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
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Necesito una clase para envio de eMail que funcione con FW
Code: Select all
#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
Re: Necesito una clase para envio de eMail que funcione con FW
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
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.
Re: Necesito una clase para envio de eMail que funcione con FW
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
Re: Necesito una clase para envio de eMail que funcione con FW
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
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 1:23 am
Re: Necesito una clase para envio de eMail que funcione con FW
karinha wrote:Code: Select all
#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