Enviar informe pdf via email

Enviar informe pdf via email

Postby J. Ernesto » Fri May 01, 2015 5:00 am

Compañeros buenas

Necesito enviar un informe diario en el formato PDF:

1- Generar automáticamente el informe en PDF, sin que intervenga el usuario,
2- Guardarlo en una carpeta ese mismo informe sin intervención de usuario,
3- y Enviarlo automáticamente vía EMail a varios usuarios.

Agradezco un pequeño ejemplo.

Desde ya muchas gracias
J. Ernesto Pinto Q.
Fivewin 1905 + BCC++ 700 + Harbour 3.20 + LopeEdit 5.8 + UEstudio 26.0
jepsys@hotmail.com, jepsys@gmail.com, jepsys@yahoo.com
User avatar
J. Ernesto
 
Posts: 152
Joined: Tue Feb 03, 2009 10:08 pm
Location: Bogotá D.C. Colombia

Re: Enviar informe pdf via email

Postby surGom » Fri May 01, 2015 8:11 pm

Ernesto yo uso para estos casos la clase tpdf.

https://drive.google.com/file/d/0B8UT40 ... sp=sharing

Ahí hay un pequeño ejemplo, y un pdf generado. Esta para utilizar en Harbour


Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: Enviar informe pdf via email, generar pdf solucionado

Postby J. Ernesto » Fri May 01, 2015 10:51 pm

Luis muchas gracias

Descargando, voy a analizarlo y hacer pruebas

La generación del PDF si intervención del usuario esta solucionada de la siguiente forma:

Code: Select all  Expand view

 PRINT oPrn NAME 'Print_10_2' FILE "prueba_2.pdf"                                                                 && FROM USER PREVIEW FILE "prueba.pdf"
 


La idea ahora es ese mismo archivo PDF enviárselo a una serie de clientes vía EMail.

Gracias
J. Ernesto Pinto Q.
Fivewin 1905 + BCC++ 700 + Harbour 3.20 + LopeEdit 5.8 + UEstudio 26.0
jepsys@hotmail.com, jepsys@gmail.com, jepsys@yahoo.com
User avatar
J. Ernesto
 
Posts: 152
Joined: Tue Feb 03, 2009 10:08 pm
Location: Bogotá D.C. Colombia

Re: Enviar informe pdf via email

Postby surGom » Sat May 02, 2015 11:23 am

Ernesto uso esa clase para enviar los pdf directamente desde un prg ya que es bastante limitada en cuanto el uso de fuentes, pero muy efectiva y hace los pdf muy livianos.


Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: Enviar informe pdf via email

Postby postinelli » Mon May 04, 2015 10:56 am

Hola Ernesto

así lo hago yo

Function GMAILME (cDestino,cAsunto,cTexto,cAdjunto )

Local oEmailCfg,oEmailMsg,oError,cHtml

/*
Local ListaEmail:= GetPvProfString("Reportes","EMAIL","NO", cIniFile)
Local xserver := GetPvProfString("Reportes","SERVEREMAIL","", cIniFile)
Local xpuerto := VAL(GetPvProfString("Reportes","PUERTOEMAIL","", cIniFile))
Local xrememail := GetPvProfString("Reportes","REMITEEMAIL","", cIniFile)
Local xremnombre:= GetPvProfString("Reportes","USUARIOEMAIL","", cIniFile)
Local xclave := GetPvProfString("Reportes","PASSWEMAIL","", cIniFile)
*/


//DEFAULT cAdjunto:="cAdjunto"
DEFAULT cAsunto :="From"
DEFAULT cTexto := "cTexto"

if Empty(cDestino )
MsgWait("No ha puesto un destinatario")
Return .f.
endif

TRY
oEmailCfg := CREATEOBJECT( "CDO.Configuration" )
WITH OBJECT oEmailCfg:Fields
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ):Value :=xserver // "smtp.gmail.com"
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ):Value := xpuerto //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 := .F.
:Item( "http://schemas.microsoft.com/cdo/configuration/sendusername" ):Value := xrememail // User
:Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword" ):Value := xclave // 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)+'IDE' +chr(34)+ xrememail
//:From = chr(34)+"IDE"+chr(34) + "<ide.jardin@speedy.com.ar>" // lo que quieras que aparezca en el mensaje
:To = cDestino
:Subject = cAsunto
:MDNRequested = .T.
:TextBody = cTexto
if !Empty(cAdjunto)
:AddAttachment(cAdjunto)
endif
END WITH
oEmailMsg:Send()
CATCH oError
MsgWait("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

//MsgInfo("Correo enviado correctamente")

Return .T.
//----------------------------------------------------------------------------//
postinelli
 
Posts: 147
Joined: Tue Jul 15, 2008 7:12 pm
Location: Argentina

Re: Enviar informe pdf via email

Postby J. Ernesto » Tue May 05, 2015 9:46 pm

Postinelli Gracias

Al probar el ejemplo me genera el error que aparece en la siguiente imagen:

"Message: El Protocolo especificado es desconocido"
(0x800C000D)

[img]
http://s4.postimg.org/6mal1m4p9/error_email.jpg
[/img]

Que me hace falta enlazar en la compilación, o como hago para solucionar este error
J. Ernesto Pinto Q.
Fivewin 1905 + BCC++ 700 + Harbour 3.20 + LopeEdit 5.8 + UEstudio 26.0
jepsys@hotmail.com, jepsys@gmail.com, jepsys@yahoo.com
User avatar
J. Ernesto
 
Posts: 152
Joined: Tue Feb 03, 2009 10:08 pm
Location: Bogotá D.C. Colombia

Re: Enviar informe pdf via email

Postby surGom » Tue May 05, 2015 10:11 pm

Ernesto ahí ya no sé cual puede ser el error yo uso el programa Rmail de Ricardo de Moura Marques

Este es el que utilizo tanto en harbour como los hechos en xharbour

https://www.4shared.com/file/_RZoap7Cce/RMail.html

No se si esto te pueda ayudar

Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: Enviar informe pdf via email

Postby postinelli » Wed May 06, 2015 11:08 am

Hola Ernesto

no es error compilacion ni que te falte algo
es un problema de configuracion de tu cuenta de correo

gmail utiliza el puerto 465, pero el puerto habitual para las cuentas smtp es 25

además debes verificar si valida ssl

aqui te paso la misma funcion pero que tiene para validad ssl, me parece que ese es tu problema


//-----------------------------------------------------------------------------------------------
Function GMAILME (cDestino,cAsunto,cTexto,cAdjunto )

Local oEmailCfg,oEmailMsg,oError,cHtml

Local cServer:= GetPvProfString("Enviador","SERVERSTP" ,"", cIniFile)
Local nPortEmail:=VAL(GetPvProfString("Enviador","EMAILPUERTO","25", cIniFile))
Local cEmailFrom:=GetPvProfString("Enviador","EMAILFROM" ,"", cIniFile)
Local cEmailUser:=GetPvProfString("Enviador","EMAILUSER" ,"", cIniFile)
Local cEmailPass:=GetPvProfString("Enviador","EMAILPASSW" ,"", cIniFile)
Local cEmailSsl:=GetPvProfString("Enviador","EMAILSSL" ,"NO", cIniFile)

DEFAULT cAdjunto:=""
DEFAULT cAsunto :=""
DEFAULT cTexto := ""

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

TRY
oEmailCfg := CREATEOBJECT( "CDO.Configuration" )
WITH OBJECT oEmailCfg:Fields
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ):Value := cServer //"smtp.fibertel.com.ar" ///"smtp.gmail.com"
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ):Value := nPortEmail //25 //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.
if cEmailSsl='SI'
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value := .T. //para servidores con ssl
else
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value := .F. //para servidores sin ssl
endif
:Item( "http://schemas.microsoft.com/cdo/configuration/sendusername" ):Value := cEmailUser //
:Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword" ):Value := cEmailPass //
: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)+Empresa+' '+chr(34) + '<'+cEmailFrom+'>' // This will be displayed in the From (The email id does not appear)
:To = cDestino
:Subject = cAsunto
:MDNRequested = .T.
:TextBody = cTexto
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

// MsgInfo("Correo enviado correctamente")

Return .T.
//-----------------------------------------------------------------------------------------------
postinelli
 
Posts: 147
Joined: Tue Jul 15, 2008 7:12 pm
Location: Argentina

Re: Enviar informe pdf via email

Postby J. Ernesto » Wed May 06, 2015 5:20 pm

Muchas gracias

La función RMail.prg, funciono bien, solo hay que hacer unos ajustes, en mi caso necesito que sin que el usuario se de cuenta, enviar informes de auditoria a una sede central.

Tiene bastante usos estas rutinas, como validar donde se estan ejecutando nuestros programas, en el caso de post anteriores donde se buscaba una forma de hacerlo.

Probare la última solucion cmbiando el puerto

Gracias por la colaboracion.

Saluods
J. Ernesto Pinto Q.
Fivewin 1905 + BCC++ 700 + Harbour 3.20 + LopeEdit 5.8 + UEstudio 26.0
jepsys@hotmail.com, jepsys@gmail.com, jepsys@yahoo.com
User avatar
J. Ernesto
 
Posts: 152
Joined: Tue Feb 03, 2009 10:08 pm
Location: Bogotá D.C. Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 61 guests

cron