Enviar archivos a correo electronico

Jason Rivas Otaiza
19 de Febrero del 2004
Quisisera saber si existe la forma de enviar archivos de correo electronico de forma automatica con Fox Pro lo que sucede es que trabajo en una empresa que tiene 3 sucrusales en el interior del pais y necesitan todos los dias recivir actualizaciones de precios y movimientos quisiera saber si hay forma de hacer esto en forma automatica

Marcelo
19 de Febrero del 2004
Te mando esta rutina para que puedas enviar mails utilizando Outlook desde VFP.

**
** SendMail.prg
** Envia un email, con un archivo adjunto.
**
** nom=Nombre del archivo a enviar. Si es 'vacio' o no existe, no envia nada.
** x_dest=Buzon destino. Si no existe o no es caracter o esta vacio, usa "vacio"
** x_cc=Buzon c/c. Si no existe o no es caracter o esta vacio usa "concopia", a menos
** que diga <nada> como nombre de buzon.
** xtit=Asunto del mensaje. Si no existe o no es caracter o esta vacio, usa "Error..."
**

parameters nom, x_dest, x_cc, x_tit, x_body

** Conecta con outlook, si no conecto todavia.
if type("xOut") == "U"
public xOut
xOut = createobject("outlook.application")
endif

** Crea el item "Mensaje de Correo"
nota = xOut.createitem(0)

** Valida los parametros recibidos.
if (pcount() < 2) or (type("x_dest") # "C") or empty(x_dest)
x_dest = "[email protected]"
endif
if (pcount() < 3) or (type("x_cc") # "C") or empty(x_cc)
x_cc = "[email protected]"
endif
if (pcount() < 4) or (type("x_tit") # "C") or empty(x_tit)
x_tit = "Correo sin titulo..."
endif
if (pcount() < 5) or (type("x_body") # "C") or empty(x_body)
x_body = ""
ENDIF

if x_cc == "<nada>"
x_cc = ""
endif

** Llena los datos del mensaje y lo envia.
with nota
.subject = m.x_Tit && Asunto
.body = m.x_body && Cuerpo
.to = m.x_dest && Para, si son varios
.cc = m.x_cc && CC
.ReadReceiptRequested = .f. && Si recibe mensaje de Leido o no
.importance = 1 && 0=Baja, 1=Normal, 2=Alta

* .MessageClass = "IPM.Document.Excel.Sheet.8" && Para que al abrir el MSG, use EXCEL.

if !empty(nom) and file(nom)
arcatt = .attachments
arcatt.add(nom) && Agrega un archivo
endif
.send
endwith
return

** Este programa te va a permiir recibir un email
** que ingresó en una bandeja de outlook
** TE MANDO UN EJEMPLO GENERAL, para que puedas investigar y aplicarlo a tus necesidades.
** La aplicacion de estas facilidades son muy amplias.

ol = CreateObject("Outlook.Application")
ns = ol.GetNameSpace("MAPI")
inbox = ns.GetDefaultFolder(6)
for i=1 to inbox.Items.Count
mailItem = inbox.Items(i)

? "Asunto:" + mailItem.Subject

&&& Aqui podes utilizar las propiedades del objeto 'mailItem',
&& para analizar el mail, asi como yo uso 'mailItem.Subject'
&& para imprimir el asunto del email.

&& Tambien podes utilizar los metodos del 'mailItem', para
&& copiarlo, borrarlo, etc.

&& Tiene una propiedad de coleccion interesante: 'Attachments'
&& que permite acceder a los archivos atachados al email y
&& grabarlos, borrarlos, etc.

endfor
release mailItem
release inbox
release ns
release ol