Enviar usando visual fox pro

Necesito hacer que desde una aplicación en visual fox pro, se envíen automáticamente mails a varios usuarios. Alguien me puede explicar como puedo hacer esto.

1 Respuesta

Respuesta
1
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 = "[email protected]"
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 = "[email protected]"
lcBCC = "[email protected]"
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
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 dirección de correo en formato válido.
Saludos,
Alex
Gracias, sencillo y muy efectivo su ejemplo.
Saludos,
Alex
Recuerda valorar la respuesta.
Un abrazo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas