Con ese procedimiento puedes enviar correos desde VFP por medio de outlook
Ejemplo:
SendMailOutlook("
sam...@mail.com","Factura","Adjunto factura de venta","C:\SGGSYSTEM\REPORTS\PDF_factura.pdf",.F.)
*Procedimiento para enviar correos por outlook
Procedure SendMailOutlook
Lparameters tcDestino, tcAsunto, tcCuerpo, tcArchivo, tlMostrar
*: Variables para la Interfase
Local loOutlook As "Outlook.Application"
Local loNameSpace As Object
Local loMailItem As Object
tcArchivo = Icase(Vartype(tcArchivo) = 'L','',Alltrim(tcArchivo))
*: Creación de objetos Outlook y NameSpace
loOutlook = Createobject("Outlook.Application")
loNameSpace = loOutlook.GetNameSpace("MAPI")
*: Ejecución de métodos básicos y armada del correo
loNameSpace.Logon('VfpsEnterprise' , 'VfpsEnterprise')
loMailItem = loOutlook.CreateItem(0)
*: Llenado de las direcciones de correos
lnRegs = ALines(laDestinos,Strtran(Alltrim(tcDestino),';',Chr(13)))
For F = 1 To lnRegs
loMailItem.Recipients.Add(Alltrim(laDestinos(F)))
Next
*: Contenido del Correo
loMailItem.Subject = tcAsunto
loMailItem.BodyFormat = 3
loMailItem.HTMLBody = tcCuerpo
If !Empty(tcArchivo)
If File(tcArchivo)
loMailItem.Attachments.Add(tcArchivo)
*: Si desea adjuntar muchos archivos, puede pasarlos
*: como se hace con las direcciones de correos y adjuntarlos
*: dentro de un ciclo
Endif
Endif
*: Se muestra la interfase Outlook (Invisible por Default)
If !tlMostrar
loMailItem.Send()
Else
loMailItem.Display
Endif
*: Liberación del objeto
loNameSpace.Logoff
=LiberarVariables('loMailItem,loNameSpace,loOutlook')
EndProc
* Procedimiento para liberar variables
Procedure LiberarVariables
Lparameters tcVariables, tcAccion
If Pcount() = 0
Return
Endif
tcAccion = Icase(Vartype(tcAccion) = 'L','D',tcAccion)
Local lnRegs, F, lcVar
lnRegs = Alines(laVar,Strtran(Alltrim(tcVariables),",",Chr(13)))
For F = 1 To lnRegs
lcVar = laVar[F]
&lcVar = Null
If tcAccion = 'D'
Release (lcVar)
Endif
Next
EndProc