Page 1 of 1

consulta :sendmail()

Posted: Tue Dec 04, 2018 7:25 am
by datato
Hola a todos, quisiera consultarle a quien utilice Fastreport para enviar Email, pero desde la opción que veo en el manual de Bisoft :sendmail()


Consultas:
- En la versión actual se ha solucionado lo que leo en el manual que no se puede utilizar con servidores de correo con SSL

- Si lo anterior está solucionado, se puede enviar un solo correo de una vez a varios destinatarios

Muy agradecido por vuestra ayuda.

Re: consulta :sendmail()

Posted: Sat Dec 08, 2018 12:09 am
by hgarciaj
Hola en la clase fastreport existe el evento onbtnsendmail que te permite definir como quieres que se comporte este proceso, para ello tienes que inhibir el diálogo de correo propio de fastreport y hacer tu propio diálogo y trabajar con anexos adicionales si requieres.
El complemento adecuado para el envío de correo es la clase cdomail donde puedes trabajar con servidores que requieren autenticación yo lo tengo funcionando sin problemas con servidores gmail (Sin doble autenticación), yahoo y con servidores smtp con ssl, si no te funcioanara la clase cdomail, puedes usar curl que es una librería gratuita y existe una clase en harbour. y si todo esto no te funciona puedes hacer un llamado a a outlook desde la funcion que asocies al evento onbtnsendmail

Re: consulta :sendmail()

Posted: Tue Dec 11, 2018 6:58 am
by datato
Buenos dias, muchas gracias por responder.

Según entiendo, lo mejor es hacer la rutina de envio de email fuera de Fastreport para un mejor control del proceso.

Gracias.

Re: consulta :sendmail()

Posted: Thu Dec 13, 2018 12:57 pm
by bingen
Así es en FR solo has de desviar el email a tu propio código, en mi caso....
If FuncExists("FastReportSendMail")
::OnBtnSendMail:={|oSender| FastReportSendMail(oSender, ::aMailPara, ::cMailAsunto, ::cMailMensaje) }
Else
::OnBtnSendMail:={|| MsgInfo("Opción de envio de email no definida para este programa.") }
Endif

Y esta es la funcion a la que llamo que como ves recibe como primer parámetro el objeto FR

//Nuestro sistema de envio de email integrado en FastReport
FUNCTION FastReportSendMail( oFr, aPara, cAsunto, cMensaje )

LOCAL cTmpFile := Appdata:cDataTmp + CleanName( oFr:cReportName ,,,.T.) + ".Pdf"

Default aPara To {}
Default cAsunto To oFr:cReportName
Default cMensaje To ""

oFr:SetProperty( "PDFExport", "FileName", cTmpFile )
oFr:SetProperty( "PDFExport", "ShowDialog", .F. )
oFr:DoExport( "PDFExport" )

WITH OBJECT TFormEmail()
:aPara := aPara
:lPara := .T.
:cAsunto := cAsunto
:cMensaje := cMensaje
:aAdjuntos := { cTmpFile }
:cPlantilla := Appdata:cPlantillaEmail
:lAdjuntos := .F.
:lAcuse := .F.
:New()
:ShowModal()
END WITH

RETURN .T.

Como idea hay te queda.