lumalma
16 de agosto de 2021, 13:30
Buenos días
Desde un programa powercobol tengo que enviar un email a una lista de personas.
El proceso q seguir es el siguiente:
1.- Al usuario se le ofrece una lista de personas a las que puede enviarles un email. El email llevará un documento adjunto que es distinto para cada persona
2.- El usuario elige una persona y se debe abrir el gestor de correo (en este caso Outlook) y se le pase la dirección de email, el asunto y el documento que debe enviar. Podría pasarse también el cuerpo del mensaje.
He visto en el foro de Acucobol en un post antiguo este código que escribió Joseg y creo que es lo que necesito. Joseg lo que hace es crear un fichero line sequential mediante este código:
move spaces to regsm
MOVE "Dim o" to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE "Dim m" to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE 'Set o = CreateObject("Outlook.Application")' to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE 'Set m = o.CreateItem(0)' to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
STRING "m.to = " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
pmail DELIMITED BY ' ' *> EMAIL
'"' DELIMITED BY SIZE
INTO regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE spaces TO pcc *> CC
IF pcc NOT = " "
STRING "m.Cc = " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
pcc DELIMITED BY ' '
'"' DELIMITED BY SIZE
INTO regsm
WRITE regsm
END-IF
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE spaces TO pbcc *> BCC
IF pbcc NOT = " "
STRING "m.Bcc = " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
pbcc DELIMITED BY ' '
'"' DELIMITED BY SIZE
INTO regsm
WRITE regsm
END-IF
*-----------------------------------------------------------------------------
move spaces to regsm
STRING "m.Subject = " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
passunto DELIMITED BY ' ' *> assunto
'"' DELIMITED BY SIZE
INTO regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE "m.Display" to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
STRING "m.HTMLBody = " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
pbody DELIMITED BY ' ' *> body
'" & "<br>" & m.HTMLBody ' DELIMITED BY SIZE
INTO regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
*> Attachments
STRING "m.Attachments.Add " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
pAttachments DELIMITED BY ' ' *> anexos
'"' DELIMITED BY SIZE
INTO regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE "m.Display" to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE "m.Send" TO regsm
WRITE regsm
Supongo que está incluido el envío pero yo no lo necesito ya que el usuario debe comprobar y adaptar cada email por lo que el envío no lo tendré en cuenta.
Una vez creado el fichero line sequential la cuestión es como utilizarlo, es decir, como abrir el fichero y que se ejecute las instrucciones y se abra el Outlook para que el usuario envíe cada email.
Gracias
Un saludo
Desde un programa powercobol tengo que enviar un email a una lista de personas.
El proceso q seguir es el siguiente:
1.- Al usuario se le ofrece una lista de personas a las que puede enviarles un email. El email llevará un documento adjunto que es distinto para cada persona
2.- El usuario elige una persona y se debe abrir el gestor de correo (en este caso Outlook) y se le pase la dirección de email, el asunto y el documento que debe enviar. Podría pasarse también el cuerpo del mensaje.
He visto en el foro de Acucobol en un post antiguo este código que escribió Joseg y creo que es lo que necesito. Joseg lo que hace es crear un fichero line sequential mediante este código:
move spaces to regsm
MOVE "Dim o" to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE "Dim m" to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE 'Set o = CreateObject("Outlook.Application")' to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE 'Set m = o.CreateItem(0)' to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
STRING "m.to = " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
pmail DELIMITED BY ' ' *> EMAIL
'"' DELIMITED BY SIZE
INTO regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE spaces TO pcc *> CC
IF pcc NOT = " "
STRING "m.Cc = " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
pcc DELIMITED BY ' '
'"' DELIMITED BY SIZE
INTO regsm
WRITE regsm
END-IF
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE spaces TO pbcc *> BCC
IF pbcc NOT = " "
STRING "m.Bcc = " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
pbcc DELIMITED BY ' '
'"' DELIMITED BY SIZE
INTO regsm
WRITE regsm
END-IF
*-----------------------------------------------------------------------------
move spaces to regsm
STRING "m.Subject = " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
passunto DELIMITED BY ' ' *> assunto
'"' DELIMITED BY SIZE
INTO regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE "m.Display" to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
STRING "m.HTMLBody = " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
pbody DELIMITED BY ' ' *> body
'" & "<br>" & m.HTMLBody ' DELIMITED BY SIZE
INTO regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
*> Attachments
STRING "m.Attachments.Add " DELIMITED BY SIZE
'"' DELIMITED BY SIZE
pAttachments DELIMITED BY ' ' *> anexos
'"' DELIMITED BY SIZE
INTO regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE "m.Display" to regsm
WRITE regsm
*-----------------------------------------------------------------------------
move spaces to regsm
MOVE "m.Send" TO regsm
WRITE regsm
Supongo que está incluido el envío pero yo no lo necesito ya que el usuario debe comprobar y adaptar cada email por lo que el envío no lo tendré en cuenta.
Una vez creado el fichero line sequential la cuestión es como utilizarlo, es decir, como abrir el fichero y que se ejecute las instrucciones y se abra el Outlook para que el usuario envíe cada email.
Gracias
Un saludo