http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,0041d75b-ce37-4493-aac9-0db82b7317d5.aspx
Autor: Craig Boyd
Traducido por: Ana María Bisbé York
Puede enviar una URL Mailto como el comando ShellExecute para facilitar el envío de correo electrónico en VFP. Debe observar que la línea de comando (URL) está limitada a 2048 bytes (sin embargo en mi sistema no podría crear una mayor de 2020 bytes) y no hay facilidades para adjuntar ficheros utilizando este método. Tiene por una parte estas limitaciones; pero es una solución que se logra en entorno de desarrollo.
******************************* *!* Ejemplo de utilización de SendViaShell ******************************* LOCAL lcTo, lcSubject, lcBody, lcCC, lcBCC, lcErrReturn lcTo = "alguien@algundominio.com" lcSubject = "Ha intentado enviar un email con VFP?" lcBody = "Quiero hacerle saber que VFP es muy versátil" + CHR(13) + "y hay muchas formas de enviar un email." lcCC = "otro@otrodominio.com" lcBCC = "mijefe@dominiodeljefe.com" SendViaShell(@lcErrReturn, lcTo, lcSubject, lcBody, lcCC, lcBCC) IF EMPTY(lcErrReturn) MESSAGEBOX("'" + lcSubject + "' se envió satisfactoriamente.", 64, "Enviar email vía Shell") ELSE MESSAGEBOX("'" + lcSubject + "'falló al enviar. Causa:" + CHR(13) + lcErrReturn, 64, ; "Enviar email vía Shell") ENDIF ******************************************* PROCEDURE SendViaShell(tcReturn, tcTo, tcSubject, tcBody, tcCC, tcBCC) ******************************************* DECLARE INTEGER ShellExecute IN shell32.DLL ; INTEGER hwndWin, STRING cOperation, STRING cFile, ; STRING cParameters, STRING cDirectory, INTEGER nShowWin LOCAL lcCommand, lcCRLF TRY lcCRLF = "%0D%0A" lcCommand = "mailto:" + tcTo + "?Subject=" + tcSubject + "&Body=" + STRTRAN(tcBody, CHR(13), lcCRLF) IF TYPE("tcCC") = "C" lcCommand = lcCommand + "&CC=" + tcCC ENDIF IF TYPE("tcBCC") = "C" lcCommand = lcCommand + "&BCC=" + tcBCC ENDIF IF LEN(lcCommand) > 2020 && debía ser 2048, pero no en mi sistema THROW "El comando Mailto está limitado a 2048 bytes" ENDIF ShellExecute(0, "open", lcCommand, "", "", 1) CATCH TO loError tcReturn = [Error: ] + STR(loError.ERRORNO) + CHR(13) + ; [LineNo: ] + STR(loError.LINENO) + CHR(13) + ; [Message: ] + loError.MESSAGE + CHR(13) + ; [Procedure: ] + loError.PROCEDURE + CHR(13) + ; [Details: ] + loError.DETAILS + CHR(13) + ; [StackLevel: ] + STR(loError.STACKLEVEL) + CHR(13) + ; [LineContents: ] + loError.LINECONTENTS FINALLY CLEAR DLLS "ShellExecute" ENDTRY ENDPROC
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.