Inicio > Visual FoxPro > squire > Enviar usando visual fox pro

Enviar usando visual fox pro

Experto:
Usuario:
Fecha: 20/02/2008
Valoración: (5,00 sobre 5) Categoría: Visual FoxPro
12/02/2008
patf, usuario preguntando en Visual FoxPro
Usuario
Necesito hacer que desde una aplicación en visual fox pro, se envien automaticamente mails a varios usuarios. Alguien me puede explicar como puedo hacer esto.
Gracias,
12/02/2008
patf, experto respondiendo en Visual FoxPro
Experto
Esto lo saque de PortalFox, puede enviar una URL Mailto como el comando ShellExecute para facilitar el envío de correo electrónico en VFP.
*******************************
*!* Ejemplo de utilización de SendViaShell
*******************************
LOCAL lcTo, lcSubject, lcBody, lcCC, lcBCC, lcErrReturn
lcTo = "alguien@algundominio.com"
lcSubject = "Enviar un email con VFP"
lcBody = "Enviar un mail desde VFP por el ShellExecute" + CHR(13) + "y hay otras 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
18/02/2008
patf, usuario preguntando en Visual FoxPro
Usuario
Gracias, ha sido de mucha ayuda, de casualidad sabe como validar un campo mail en visual fox pro, es decir una rutina que me verifique que efectivamente se declaro una direccion de correo en formato valido.
 
Saludos,
 
Alex
18/02/2008
patf, experto respondiendo en Visual FoxPro
Experto
19/02/2008
patf, usuario preguntando en Visual FoxPro
Usuario
Gracias, sencillo y muy efectivo su ejemplo.
Saludos,
 
Alex
19/02/2008
patf, experto respondiendo en Visual FoxPro
Experto
Bueno, recuerda valorar la respuesta.
un abrazo
20/02/2008
patf, usuario preguntando en Visual FoxPro
Usuario
Una ayuda muy oportuna y efectiva.
Enlaces patrocinados