Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Componente] Enviar E-Mail desde PowerCOBOL Recato53 PowerCOBOL (ActiveX, v4 - v11) 21 5 de junio de 2025 19:05
[PowerCOBOL] Ocx, Dll y ejemplo envío Mail desde PWC Josber Cocina PowerCOBOL 23 27 de septiembre de 2022 15:53
[Duda] Copia de seguridad desde PowerCOBOL 9 jjcol PowerCOBOL (ActiveX, v4 - v11) 1 9 de noviembre de 2021 10:22
[PowerCOBOL] Hyperfile SQL desde PowerCOBOL Dasije Cocina PowerCOBOL 3 14 de julio de 2018 16:46
[Duda] Envio SMS powercobol JuanJuan77 PowerCOBOL (ActiveX, v4 - v11) 1 9 de marzo de 2016 16:40

Respuesta

  #1
Antiguo 16 de agosto de 2021, 13:30
lumalma
Forero Junior
Última Actividad 13.08.2026 16:57
Posts Posts: 25
Likes enviados Enviados: 7
Likes recibidos Recibidos: 3
Predeterminado Envío email desde powercobol
0 Inactivo Inactivo

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:

Código COBOL:
  1.     move spaces to regsm
  2.      MOVE "Dim o" to regsm
  3.      WRITE regsm
  4. *-----------------------------------------------------------------------------
  5.      move spaces to regsm
  6.      MOVE "Dim m" to regsm
  7.      WRITE regsm
  8. *-----------------------------------------------------------------------------
  9.      move spaces to regsm
  10.      MOVE 'Set o = CreateObject("Outlook.Application")' to regsm
  11.      WRITE regsm
  12. *-----------------------------------------------------------------------------
  13.      move spaces to regsm
  14.      MOVE 'Set m = o.CreateItem(0)' to regsm
  15.      WRITE regsm
  16. *-----------------------------------------------------------------------------
  17.      move spaces to regsm
  18.      STRING "m.to = " DELIMITED BY SIZE
  19.             '"' DELIMITED BY SIZE
  20.             pmail DELIMITED BY ' '      *> EMAIL
  21.             '"' DELIMITED BY SIZE
  22.             INTO regsm
  23.      WRITE regsm
  24. *-----------------------------------------------------------------------------
  25.      move spaces to regsm
  26.      MOVE spaces TO pcc    *> CC
  27.      IF pcc NOT = " "
  28.         STRING "m.Cc = " DELIMITED BY SIZE
  29.             '"' DELIMITED BY SIZE
  30.             pcc DELIMITED BY ' '
  31.             '"' DELIMITED BY SIZE
  32.             INTO regsm
  33.         WRITE regsm
  34.      END-IF
  35. *-----------------------------------------------------------------------------
  36.      move spaces to regsm
  37.      MOVE spaces TO pbcc   *> BCC
  38.      IF pbcc NOT = "  "
  39.         STRING "m.Bcc = " DELIMITED BY SIZE
  40.             '"' DELIMITED BY SIZE
  41.             pbcc DELIMITED BY ' '
  42.             '"' DELIMITED BY SIZE
  43.             INTO regsm
  44.         WRITE regsm
  45.      END-IF
  46. *-----------------------------------------------------------------------------
  47.      move spaces to regsm
  48.         STRING "m.Subject = " DELIMITED BY SIZE
  49.             '"' DELIMITED BY SIZE
  50.             passunto DELIMITED BY '   '      *> assunto
  51.             '"' DELIMITED BY SIZE
  52.             INTO regsm
  53.      WRITE regsm
  54. *-----------------------------------------------------------------------------
  55.      move spaces to regsm
  56.      MOVE "m.Display" to regsm
  57.      WRITE regsm
  58.  
  59. *-----------------------------------------------------------------------------
  60.  
  61.      move spaces to regsm
  62.    
  63.         STRING "m.HTMLBody = " DELIMITED BY SIZE
  64.             '"' DELIMITED BY SIZE
  65.             pbody DELIMITED BY '                 '  *> body
  66.             '" & "<br>" & m.HTMLBody  ' DELIMITED BY SIZE
  67.             INTO regsm
  68.      WRITE regsm
  69. *-----------------------------------------------------------------------------
  70.      move spaces to regsm
  71.     *> Attachments
  72.         STRING "m.Attachments.Add " DELIMITED BY SIZE
  73.             '"' DELIMITED BY SIZE
  74.             pAttachments DELIMITED BY '            '   *> anexos
  75.             '"' DELIMITED BY SIZE
  76.             INTO regsm
  77.      WRITE regsm
  78. *-----------------------------------------------------------------------------
  79.      move spaces to regsm
  80.      MOVE "m.Display" to regsm
  81.      WRITE regsm
  82.  
  83. *-----------------------------------------------------------------------------
  84.      move spaces to regsm
  85.      MOVE "m.Send" TO regsm
  86.       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
lumalma is offline   Responder Con Cita
  #2
Antiguo 16 de agosto de 2021, 20:21
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Criar um ficheiro com a extensão .VBS
Exemplo: sendmail.vbs (visual basic script)

Este comando envia automaticamente:
Código COBOL:
  1. MOVE "m.Send" TO regsm

Se for para abrir o outlook e envio manual NÃO incluir a linha anterior.

Para executar o sendmail.VBS ver no Acucobol como executar uma "commandline" ou usar este pequeno utilitário :
NirCmd - Windows command line tool

nircmdc shexec open sendmail.vbs
Joseg is offline   Responder Con Cita
  #3
Antiguo 23 de septiembre de 2021, 18:19
lumalma
Forero Junior
Última Actividad 13.08.2026 16:57
Posts Posts: 25
Likes enviados Enviados: 7
Likes recibidos Recibidos: 3

Buenas tardes @Joseg,

Después de un tiempo en el que no he estado activo y sin aparecer por el foro por una serie de circunstancias escribo para agradecerte tu ayuda.

He vuelto a coger el asunto por el cual comencé este post y he conseguido abrir Outlook siguiendo tus indicaciones y poder así enviar emails desde un programa powercobol.

Muchas gracias

Un saludo
lumalma is offline   Responder Con Cita
  #4
Antiguo 13 de abril de 2025, 05:09
LEO-SANLUIS
Forero Junior
Última Actividad 28.05.2025 13:20
Posts Posts: 5
Likes enviados Enviados: 6
Likes recibidos Recibidos: 0
Predeterminado Envio de mails desde powercobol
0 Inactivo Inactivo

Buenas noches colegas:
Estoy utilizando el programa SwithMail.exe para modificar mis sistemas en powercobol3 y enviar emails.
Es una maravilla como funciona, el ùnico problema que tengo es que solamente puedo ejecutarlo desde un archivo bat, que tiene este contenido: SwithMail.exe /s /x "C:\SISTEMA\SwithMailSettings.xml" .
Si lo ejecuto desde el simbolo del sistema o desde el explorador de archivos, funciona perfecto.
Si lo quiero llamar desde dentro del powercobol3 con la llamada al systema, no da ningún error pero no lo ejecuta.
Uso este pequeño programa para llamarlo.

Código COBOL:
  1.  IDENTIFICATION DIVISION.
  2.  PROGRAM-ID. "LLAMO" COMMON.
  3.  ENVIRONMENT DIVISION.
  4.  DATA        DIVISION.
  5.  WORKING-STORAGE SECTION.
  6.  01 COMANDOS  PIC  X(256).
  7.  77  I PIC 9 VALUE ZEROS.
  8.  PROCEDURE DIVISION.
  9.  INICIO.
  10.         MOVE "C:\SISTEMA\SwithMail.exe /s/x  SwithMailSettings.xml" TO COMANDOS.   
  11.                 CALL EXECAPL OF GESTOR USING COMANDOS POW-SWSHOWMAXIMIZED.  .  
  12.         CALL CLOSESHEET OF GESTOR.
  13.  
  14.  END PROGRAM "LLAMO".

Estuve probando y el inconveniente son los caracteres que van luego del .exe, es decir /s/x
Tienen alguna idea de como llamar al sistema de otra forma, porque utilizando un bat sucede lo mismo, y debo usarlo con la sentencia completa con /s/x
Muchas gracias
Saludos a todos

Comentario de Moderador

Usa el resalto de sintaxis:
LEO-SANLUIS is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:01.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.