Envio de reportes por correo electronico

jgcamposv
31 de Octubre del 2009
Por favor quien podria indicarme como enviar un reporte (report form) via correo electronico. Sin que cambie el formato

Gracias

Zulvic
31 de Octubre del 2009
Hola yo tambien necesito enviar un reporte via e-mail, ya tengo casi un mes con eso y nada, me han enviado varios codigos, pero nada, pero me dieron una opcion de enviar el informe como un archivo de texto, pero nose, seria mejor que mantenga el formato original que tiene en VFP, debe de haber alguna forma de enviarlo, yo de todas maneras seguire consultando, pero aqui te voy a enviar unos codigos:

Bueno primero tienes que usar el control ActiveX msmapi32.ocx, junto con msmapimesage y msmapisesion, que lo debes incrustar en un formulario: A qui van varios codigos a ver si alguno te funciona y me avisas:

Tenes que utilizar el MAPI32.OCX que te permite enviar mails a traves de Outlook.Yo lo hago así:
REPORT FORM informe TO FILE "C:informe" ASCIIthisform.Sesion.signonthisform.mensaje.sessionID = thisform.Sesion.Session IDthisform.mensaje.MsgIndex = -1thisform.mensaje.composethisform.mensaje.RecipAddress = direccion_a_enviarthisform.mensaje.MsgSubject = "asunto que le quieras poner"thisform.mensaje.AttackmentPathName = "ruta y nombre de archivo que quere adjuntar"thisform.mensaje.send(.T.) thisform.Sesion.SignOffy listo.Mensaje y Sesion son dos objetos que debes colocar que te aparecen al agregar el OCX antes mencionado.Espero que te sirva.

Zulvic
31 de Octubre del 2009
La solucion mas elegante y quizas mas rapida sea crearlo como pdf , luego eso se adjunta a un correo ... Crearlo como pdf lo puedes hacer con print2pdf , es gratuito , viene con todo lo que necesitas y da muy buena calidad (si haces pequeños ajustes en la impresora virtual) ... enviar un correo desde fox lo veras mas de una vez contestado en este foro ...



lcTo = "[email protected]"
lcFrom = "[email protected]"
lcSubject = "prueba"
lcText = "prueba"

#define sckClosed 0
#define sckOpen 1
#define sckListening 2
#define sckConnectionPending 3
#define sckResolvingHost 4
#define sckResolved 5
#define sckConnecting 6
#define sckConnected 7
#define sckClosing 8
#define sckError 9

#DEFINE crlf CHR(13)+CHR(10)
oWinsock = CREATEOBJECT("MSWinsock.Winsock.1")
oWinsock.Protocol = 0 && 0=TCP , 1=UDP
oWinsock.RemoteHost = "nombre del servidor" && pones la ip o el nombre del servidor
oWinsock.RemotePort = 25 && smtp
oWinsock.Connect
=Inkey(.25)
WAIT WINDOW "conectando" nowait

*-- se queda esperando que el estado de la coneccion sea CONNECTED
waithop = 0
DO while oWinsock.State # sckConnected AND waithop <= 10
=inkey(.5)
waithop = waithop + 1
ENDDO

*-- manda el mail
IF oWinsock.State = sckConnected
WAIT CLEAR
oWinsock.senddata("Helo servidor" + crlf) && donde dice servidor tenes que poner la ip o el nombre de tu servidor.
oWinSock.senddata("Mail From:"+lcFrom + crlf)
=inkey(.25)
oWinSock.senddata("RCPT TO:" + lcTo + crlf)
=Inkey(.25)
oWinsock.senddata("DATA" + crlf)
oWinsock.senddata("From:" + lcFrom + crlf)
oWinSock.senddata("To:"+ lcTo + crlf)
oWinsock.senddata("Subject:" + lcSubject + crlf)
oWinsock.senddata(crlf + lcText + crlf)
=Inkey(.25)
oWinsock.senddata("." + crlf)
=Inkey(.25)
oWinsock.senddata("quit")
=Inkey(.25)
Else
Wait Window "No se pudo conectar con el puerto " + STR(oWinsock.State,2) NOWAIT
Endif
oWinsock.close()
messagebox("proceso terminado")


Muy bueno, otra forma de hacerlo tambien es setear la constante _SCREEN.HIDE = .T. y en cada formulario que se use la propiedad SHOWWINDOWS como ASTOPLEVELFORM (opcion 2).

juanel
31 de Octubre del 2009
busque algo de conversacion con voz pero no encontre nada, alguien sabe alguna forma de hacerlo usando visual foxpro.

William Quiros
31 de Octubre del 2009
Copié el código de Zulvic para enviar correo con Fox, aparentemente funciona pero no envía el correo. Tengo vfp 5.0. Con esta versión no funciona? o hay que hacer algo previo con Windows?
Gracias.

Zulvic
31 de Octubre del 2009
RE:Como agregar el MSMAPI32.OCX en VF7.0
Ve al menu "Tools", luego "Options" y selecciona "Controls" y luego "Activex Controls". Busca en la lista el control. Si quieres avanzar mas en el uso del MSMAPI, cheque esto: http://support.microsoft.com/default.aspx?scid=kb;en-us;135755 http://support.microsoft.com/default.aspx?scid=kb;en-us;152772 http://support.microsoft.com/default.aspx?scid=kb;en-us;146641

Zulvic
31 de Octubre del 2009
En la ayuda de visual foxpro hay un ejemplo se llama sendmail.scx, el funciona pero manda es un registro de una tabla, a menos de que intentes y lo modifiques a ver si te sirve.

Tambien te voy a enviar un ejemplo que me mandaron a mi correo, a ver si lo arreglas y te funciona.

Javier
31 de Octubre del 2009
Esto la verdad que funciona perfectamente con el msmapi32, pero tengo un pequeño problemita, como envio el mismo mail a varias personas, trate de todo, y realmente no logre nada, me podrian ayudar porfavor.....