Hola, te expongo lo que hago yo, al pinchar en el símbolo de email del Preview se ejecuta la función ENVIAR_EMAIL, que guarda el preview a PDF y después hace el envío mediante CDO adjuntando el PDF.
Está línea de código cambia el codeblock que se ejecuta al pinchar en el icono de email en el Preview, debes ponerla después de definido el objeto TPrinter.
- Code: Select all Expand view RUN
TPreview():bEmail := { |oPreview, cFile| ENVIAR_EMAIL (oPreview, cFile) }
Y aquí la función :
- Code: Select all Expand view RUN
static function ENVIAR_EMAIL (oPreview, cFile)
local oEmailMsg, oErr, cFicPDF, cSchema := "http://schemas.microsoft.com/cdo/configuration/"
cFicPDF := getenv ("TEMP") + "\" + cFile + ".PDF"
FWSavePreviewToPDF ( oPreview, cFicPDF, .f. )
oEmailMsg := CREATEOBJECT ( "CDO.Message" )
WITH OBJECT oEmailMsg
:From := ""
:To := ""
:CC := ""
:BCC := ""
:Subject := ""
:TextBody := "Texto del correo " + CRLF + ;
"en varias lineas"
if FILE ( cFicPDF )
:AddAttachment (cFicPDF)
endif
WITH OBJECT :configuration:Fields
:Item( cSchema + "smtpserver" ):Value := "smtp.gmail.com"
:Item( cSchema + "smtpserverport" ):Value := 465
:Item( cSchema + "sendusing" ):Value := 2
:Item( cSchema + "smtpauthenticate" ):Value := .t.
:Item( cSchema + "smtpusessl" ):Value := .t.
:Item( cSchema + "sendusername" ):Value := "" && usuario de la cuenta gmail
:Item( cSchema + "sendpassword" ):Value := "" && contraseña
:Item( cSchema + "smtpconnectiontimeout" ):Value :=60
:Update()
END WITH
:Send()
END WITH
return Nil
Sólo tienes que rellenar los campos del email con tus direcciones y texto. Yo uso una cuenta de gmail, por eso en smtpserver te lo he dejado como ejemplo, pero puedes usar cualquier cuenta que funcione a través de smtp.
Un saludo.