Mandar un e-mail
En realidad lo que vamos a hacer con este truco que nos ha facilitado un programador amigo llamado José Mari, es invocar con un CALL, a nuestro programa de correo electrónico para que nos muestre una ventana para escribir un mensaje nuevo.

El truco va a estar explicado para hacerlo con Outlook Express (OE), pero podréis hacer lo mismo con cualquier otro, cambiando algunos de los parámetros.

Lo primero que debemos de hacer es averiguar donde se encuentra ubicado el programa en nuestro disco duro, si utilizamos OE, éste se encontrará en " C:Archivos de ProgramaOutlook ExpressMsimn.exe".

Una vez tengamos la ruta solo tendremos que hacer un CALL ha dicho lugar, pero tenemos que tener en cuenta que si lo hacemos desde MS-DOS, para éste sistema los nombres de archivo o carpetas no pueden tener mas de 8 caracteres, por lo que la ruta completa podría quedar así:  " C:ARCHIV~1OUTLOO~1MSIMN.EXE". 

Ahora por último nos queda pasarle los parámetros necesarios, para que en vez de abrir el programa nos abra solo una ventana con un mensaje nuevo. Esto se consigue añadiendo lo siguiente: /mailurl:mailto:direccion_de_correo y si además queremos que el asunto también vaya indicado añadimos lo siguiente a continuación de la dirección de correo y sin espacios:
?subject=asunto.

Ahora veamos como quedaría nuestro programa, imaginaos por ejemplo en vuestro programa de mantenimiento de clientes o proveedores que incorporáis una opción para enviar correo electrónico y que por supuesto tenéis su dirección electrónica como algún campo de su registro:

...
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CLIENTES ASSIGN TO RANDOM "clientes.dat"
       ORGANIZATION INDEXED ACCESS DYNAMIC RECORD KEY KEYCLI.
DATA DIVISION.
FILE SECTION.
FD   CLIENTES LABEL RECORD STANDARD.
01   REGCLI.
      02  KEYCLI.
           03  CLICOD PIC 9(4).
      02  CLINOM      PIC X(30).
      02  CLIDOM      PIC X(30).
      02  CLIPOB       PIC X(30).
      ...
      02  CLIMAI       PIC X(30) (correo electrónico)
      ...
WORKING-STORAGE SECTION.
01  LLAMADA.
     02  FILLER  PIC X(30) VALUE "c:archiv~1outloo~1msimn.exe".
     02  FILLER  PIC X(17) VALUE " /mailurl:mailto:"
     02  LLAMAI PIC X(30).
01  OP            PIC X.
...
PROCEDURE DIVISION.
INICIO.
     ...
     ...
OPCIONES.
     DISPLAY "(M)ANDAR CORREO" LINE 20 COL 10 LOW REVERSE.
     ACCEPT OP LINE 20 COL 12 PROMPT.
     IF OP = "M" GO MANDARCORREO.
     ...
     ...
MANDARCORREO.
    MOVE CLIMAI TO LLAMAI.
    CALL "SYSTEM" USING LLAMADA.
    ...


Para mandarme un mensaje a mi, por ejemplo podemos hacerlo mas fácil:

CALL "SYSTEM" USING "C:ARCHIV~1OUTLOO~1MSIMN.EXE /mailurl:mailto:andres@escobol.com?subject=Hola Andres".

Fijaros de que manera mas fácil podemos hacer que nuestro programa sea un ciberprograma.

Carlos, ha descubierto un poco mas sobre la instrucción y ahora podemos añadirte también el cuerpo del mensaje, unicament insertando &body=cuerpo_del_mensaje justo después del subject, sin dejar espacios.

A próposito de éste tema, nuestro amigo Muñoz, S. nos propone un programita para enviar mail's entre usuarios de Unix / Linux.

identification division.
program-id. Mail.
environment division.
configuration section.
special-names.
           decimal-point is comma.
input-output section.
data division.
working-storage section.
01  parametros       pic x(250).
01  string-mail.
     02 filler          pic x(09) value "mailx -s ".
     02 filler          pic x(01) value '"'.
     02 asunto      pic x(30) value spaces.
     02 filler          pic x(02) value '" '.
     02 usuario      pic x(30) value spaces.
     02 filler          pic x(03) value " < ".
     02 mensaje     pic x(47) value spaces.
     02 filler          pic x(12) value " > /dev/null".
procedure division.
parrafo-principal.
        accept parametros from command-line
        unstring parametros delimited by ","
                   into asunto, usuario, mensaje.
        display string-mail
        call "system" using string-mail
        stop run.

Donde: mailx es el comando de Unix/Linux que envia los mail.

Los parámetros de entrada al programa en este caso deben estar separados por coma (,).



Este artículo proviene de Cobol en español
http://www.escobol.com

La dirección de esta noticia es:
http://www.escobol.com/modules.php?name=Sections&op=viewarticle&artid=87