Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Cocina PowerCOBOL (https://www.cobolforo.es/forumdisplay.php?f=24)
-   -   [PowerCOBOL] Ocx, Dll y ejemplo envío Mail desde PWC (https://www.cobolforo.es/showthread.php?t=722)

Josber 21 de septiembre de 2017 12:21

Ocx, Dll y ejemplo envío Mail desde PWC
 
3 Archivos Adjunto(s)
Aquí os dejo un pequeño programa que he hecho de ejemplo, para poder enviar correos desde PowerCobol, el componente tiene casi todas las opciones necesarias, usuario, contraseña, servidores POP3 y SMTP, envío de adjuntos, exportar a EML, envíos PARA:, CC: CCO:, Puerto, etc.

El componente está probado en Windows 10 x64 y PowerCobol 9, y funciona perfectamente. Para que funcione, hay que registrar el ocx y la dll, con permisos de administrador, o de lo contrario, nos dará error al abrir el proyecto.

- Incluye: ppj, exe, ocx, dll e iconos.
- Versión del Compilador: PWC9, aunque supongo que funcionará en las demás versiones sin problemas.
- Incluye: Documento rtf, con una pequeña descripción de los eventos y propiedades del componente.

Un saludo a todos.-

Celina 13 de marzo de 2021 01:37

@Josber,

Realmente aprecio que compartas, pero tengo un problema, si pones acentos en el cuerpo del mensaje, ¿aparecen con caracteres especiales? ¿Me puedes ayudar? Muchas gracias

Josber 13 de marzo de 2021 19:17

Cita:

Citación del post de Celina (Mensaje 6543)
¿aparecen con caracteres especiales?


No sé si es que lo preguntas porque sí te aparecen caracteres especiales, o es que se te han colado las interrogaciones, a ver, a mí no me aparece nada raro, y sí puedo enviar un texto con acentos, yo más bien pienso en alguna configuración de tu Windows, no sé si a alguien más le pasará, a ver si alguien expone algo.

Es que si no, no sé por donde tirar para ayudarte

Un salu2.-

Celina 19 de marzo de 2021 14:23

1 Archivos Adjunto(s)
Muchas gracias por su respuesta.

Si envío el siguiente texto:

"Isto é um teste. Não consigo enviar palavras com acentos faça as alterações que fizer."

En el correo electrónico el texto enviado es:

“Isto i um teste. Nco consigo enviar palavras com acentos faga as alteragues que fizer.”

en su ayuda se asigna el archivo RTF:

object.Charset As String
Character set used in message (default - "us-ascii")

pero no sé cómo trabajar con él.

MOVE "Text" OF CmEML-ENVIO TO "MailFrom" OF SMTP1
MOVE "ISO-8859-1" TO "Charset" OF SMTP1
MOVE "Text" OF CmUSER TO "Username" OF SMTP1
MOVE "Text" OF CmPASS TO "Password" OF SMTP1
MOVE "Text" OF CmPOP3 TO "POPServer" OF SMTP1
MOVE "Text" OF CmSMTP TO "Server" OF SMTP1
MOVE "Text" OF CmPORTA TO "Port" OF SMTP1
MOVE 2 TO "AuthenticationType" OF SMTP1 *>AUTH LOGIN
MOVE "Text" OF CmASSUNTO TO "MessageSubject" OF SMTP1
MOVE "Text" OF CmMENSAGEM TO "MessageText" OF SMTP1


Puedes ver cómo se ve en la imagen.

Muchas gracias

Joseg 19 de marzo de 2021 15:55

Cita:

Citación del post de Celina (Mensaje 6559)
Muchas gracias por su respuesta.

Si envío el siguiente texto:

"Isto é um teste. Não consigo enviar palavras com acentos faça as alterações que fizer."

En el correo electrónico el texto enviado es:

“Isto i um teste. Nco consigo enviar palavras com acentos faga as alteragues que fizer.”

en su ayuda se asigna el archivo RTF:

object.Charset As String
Character set used in message (default - "us-ascii")

pero no sé cómo trabajar con él.

MOVE "Text" OF CmEML-ENVIO TO "MailFrom" OF SMTP1
MOVE "ISO-8859-1" TO "Charset" OF SMTP1
MOVE "Text" OF CmUSER TO "Username" OF SMTP1
MOVE "Text" OF CmPASS TO "Password" OF SMTP1
MOVE "Text" OF CmPOP3 TO "POPServer" OF SMTP1
MOVE "Text" OF CmSMTP TO "Server" OF SMTP1
MOVE "Text" OF CmPORTA TO "Port" OF SMTP1
MOVE 2 TO "AuthenticationType" OF SMTP1 *>AUTH LOGIN
MOVE "Text" OF CmASSUNTO TO "MessageSubject" OF SMTP1
MOVE "Text" OF CmMENSAGEM TO "MessageText" OF SMTP1


Puedes ver cómo se ve en la imagen.

Muchas gracias



Porque não gosto de usar OCXs de terceiros (é necessário registar em cada posto que o vai usar...),
uso esta ferramenta e funciona muito bem (mas há outras alternativas):

Código COBOL:
  1.           string "SwithMail.exe /s /x swc.xml" delimited by size
  2.               " /to "  delimited by size                 *> para
  3.                wTO delimited by "  "
  4.               into CommandLine
  5.           end-string
  6.  
  7.           IF wCC NOT = SPACES
  8.              STRING CommandLine DELIMITED BY "  "         *> CC  
  9.                 " /CC "  delimited by size
  10.                 wCC  delimited by "  "
  11.                 INTO CommandLine
  12.              end-string
  13.           END-IF
  14.  
  15.           STRING CommandLine DELIMITED BY "  "
  16.               ' /sub "'  delimited by size
  17.               wSUBJECT delimited by "     "     *> assunto
  18.               '"' delimited by size
  19.               INTO  CommandLine
  20.           end-string
  21.  
  22.           STRING CommandLine DELIMITED BY "  "
  23.               ' /b '  delimited by size             *> body
  24.               '"' delimited by size
  25.               wBODY delimited by "                           "
  26.               '"' delimited by size
  27.               into CommandLine
  28.           end-string
  29.  
  30.           IF wATTACH NOT = SPACES      
  31.              STRING CommandLine DELIMITED BY "  "
  32.                 ' /a '  delimited by size
  33.                 '"' delimited by size
  34.                 wATTACH  DELIMITED BY "   "    *> anexo1
  35.                 '"' delimited by size
  36.                 INTO CommandLine
  37.              end-string
  38.           END-IF
  39.           INVOKE pow-self "Execute" USING CommandLine POW-SWHIDE  

Celina 22 de marzo de 2021 13:35

Cita:

Citación del post de Joseg (Mensaje 6560)
Porque não gosto de usar OCXs de terceiros (é necessário registar em cada posto que o vai usar...),
uso esta ferramenta e funciona muito bem (mas há outras alternativas):

Código COBOL:
  1.           string "SwithMail.exe /s /x swc.xml" delimited by size
  2.               " /to "  delimited by size                 *> para
  3.                wTO delimited by "  "
  4.               into CommandLine
  5.           end-string
  6.  
  7.           IF wCC NOT = SPACES
  8.              STRING CommandLine DELIMITED BY "  "         *> CC  
  9.                 " /CC "  delimited by size
  10.                 wCC  delimited by "  "
  11.                 INTO CommandLine
  12.              end-string
  13.           END-IF
  14.  
  15.           STRING CommandLine DELIMITED BY "  "
  16.               ' /sub "'  delimited by size
  17.               wSUBJECT delimited by "     "     *> assunto
  18.               '"' delimited by size
  19.               INTO  CommandLine
  20.           end-string
  21.  
  22.           STRING CommandLine DELIMITED BY "  "
  23.               ' /b '  delimited by size             *> body
  24.               '"' delimited by size
  25.               wBODY delimited by "                           "
  26.               '"' delimited by size
  27.               into CommandLine
  28.           end-string
  29.  
  30.           IF wATTACH NOT = SPACES      
  31.              STRING CommandLine DELIMITED BY "  "
  32.                 ' /a '  delimited by size
  33.                 '"' delimited by size
  34.                 wATTACH  DELIMITED BY "   "    *> anexo1
  35.                 '"' delimited by size
  36.                 INTO CommandLine
  37.              end-string
  38.           END-IF
  39.           INVOKE pow-self "Execute" USING CommandLine POW-SWHIDE  



Muito obrigada pela sua ajuda.
Vou tentar usar esse e se pudesse agradecia que me enviasse um ficheiro exemplo do swc.xml para eu ver a configuração.

Se tiver de anexar vários anexos ao email como ficaria o código?

Mais uma vezes agradeço-lhe imenso a sua ajuda.

Joseg 23 de marzo de 2021 00:05

1 Archivos Adjunto(s)
Cita:

Citación del post de Celina (Mensaje 6571)
Muito obrigada pela sua ajuda.
Vou tentar usar esse e se pudesse agradecia que me enviasse um ficheiro exemplo do swc.xml para eu ver a configuração.

Se tiver de anexar vários anexos ao email como ficaria o código?

Mais uma vezes agradeço-lhe imenso a sua ajuda.


Código COBOL:
  1.   IF wATTACH NOT = SPACES      
  2.              STRING CommandLine DELIMITED BY "  "
  3.                 ' /a '  delimited by size
  4.                 '"' delimited by size
  5.                 wATTACH  DELIMITED BY "   "    *> anexo1
  6.                 '"' delimited by size
  7.                 INTO CommandLine
  8.              end-string
  9.           END-IF
  10.          IF wATTACH2 NOT = SPACES      
  11.              STRING CommandLine DELIMITED BY "  "
  12.                 '|'  delimited by size
  13.                 wATTACH2  DELIMITED BY "   "    *> anexo2
  14.                 '"' delimited by size
  15.                 INTO CommandLine
  16.              end-string
  17.           END-IF

Separar os vários anexos com o separador "|"

O XML é criado automaticamente com a a ferramenta. Ver a imagem,
Mas basicamente é a onde fica registado a configuração da conta de e-mail a usar (user, password, server).

jmeza 25 de marzo de 2021 15:55

Cita:

Citación del post de Josber (Mensaje 3519)
registrar el ocx y la dll

Joseg, disculpa la pregunta, como registro
registrar el ocx y la dll

Joseg 25 de marzo de 2021 15:59

Cita:

Citación del post de jmeza (Mensaje 6585)
Joseg, disculpa la pregunta, como registro
registrar el ocx y la dll

en modo administrador, ejecute: reg.bat

Celina 29 de marzo de 2021 16:16

Cita:

Citación del post de Joseg (Mensaje 6573)
Código COBOL:
  1.   IF wATTACH NOT = SPACES      
  2.              STRING CommandLine DELIMITED BY "  "
  3.                 ' /a '  delimited by size
  4.                 '"' delimited by size
  5.                 wATTACH  DELIMITED BY "   "    *> anexo1
  6.                 '"' delimited by size
  7.                 INTO CommandLine
  8.              end-string
  9.           END-IF
  10.          IF wATTACH2 NOT = SPACES      
  11.              STRING CommandLine DELIMITED BY "  "
  12.                 '|'  delimited by size
  13.                 wATTACH2  DELIMITED BY "   "    *> anexo2
  14.                 '"' delimited by size
  15.                 INTO CommandLine
  16.              end-string
  17.           END-IF

Separar os vários anexos com o separador "|"

O XML é criado automaticamente com a a ferramenta. Ver a imagem,
Mas basicamente é a onde fica registado a configuração da conta de e-mail a usar (user, password, server).


Consegui colocar o envio de emails pelo SwithMail a funcionar, mas agora criei uma lista de envio de emails em série e testei o envio para 4 emails meus e funcionou na perfeição, mas ao enviar para outros deu falha no envio e no ficheiro de Log a mensagem é a seguinte:

"O cliente não tem permissão para enviar correio para este servidor. A resposta do servidor foi: 4.7.1 <[email protected]>: Relay access denied"

Outra dúvida, quantos emails podem ser enviados ao mesmo tempo, ou seja, quantos comandos "INVOKE pow-self Execute USING CommandLine POW-SWHIDE" posso executar ao mesmo tempo?

Agradeço a ajuda dispensada.

Joseg 29 de marzo de 2021 18:10

Cita:

Citación del post de Celina (Mensaje 6599)
Consegui colocar o envio de emails pelo SwithMail a funcionar, mas agora criei uma lista de envio de emails em série e testei o envio para 4 emails meus e funcionou na perfeição, mas ao enviar para outros deu falha no envio e no ficheiro de Log a mensagem é a seguinte:

"O cliente não tem permissão para enviar correio para este servidor. A resposta do servidor foi: 4.7.1 <[email protected]>: Relay access denied"

Outra dúvida, quantos emails podem ser enviados ao mesmo tempo, ou seja, quantos comandos "INVOKE pow-self Execute USING CommandLine POW-SWHIDE" posso executar ao mesmo tempo?

Agradeço a ajuda dispensada.

Se a conta de SMPT for do Gmail, tem que configurar a conta para dar acesso a ferramentas de terceiros.
Mas faça o teste diretamente SwithMail .

Ver também isto:
Server error: '454 4.7.1 <mail address sending to> - Microsoft Community

jjcol 29 de diciembre de 2021 22:24

Cita:

Citación del post de Josber (Mensaje 3519)
Aquí os dejo un pequeño programa que he hecho de ejemplo, para poder enviar correos desde PowerCobol, el componente tiene casi todas las opciones necesarias, usuario, contraseña, servidores POP3 y SMTP, envío de adjuntos, exportar a EML, envíos PARA:, CC: CCO:, Puerto, etc.

El componente está probado en Windows 10 x64 y PowerCobol 9, y funciona perfectamente. Para que funcione, hay que registrar el ocx y la dll, con permisos de administrador, o de lo contrario, nos dará error al abrir el proyecto.

- Incluye: ppj, exe, ocx, dll e iconos.
- Versión del Compilador: PWC9, aunque supongo que funcionará en las demás versiones sin problemas.
- Incluye: Documento rtf, con una pequeña descripción de los eventos y propiedades del componente.

Un saludo a todos.-

como se registra el ocx y la dll

Josber 30 de diciembre de 2021 12:38

Cita:

Citación del post de jjcol (Mensaje 7400)
como se registra el ocx y la dll

desde la linea de comandos y, en la misma carpeta en la que tengas la dll, ejecutas

regsvr32 nombre_de_la_dll.dll

y ya está

Un salu2.-

fastpho 30 de diciembre de 2021 18:26

Cita:

Citación del post de Josber (Mensaje 7401)
desde la linea de comandos y, en la misma carpeta en la que tengas la dll, ejecutas

regsvr32 nombre_de_la_dll.dll

y ya está

Un salu2.-

En windows 10 ejecutar como administrador
Saludos

Paulo 4 de mayo de 2022 17:07

Olá a todos.
Tenho usado Swithmail, é simples e funciona bem com o gmail e os outros.
Mas a 30 de Maio a gmail irá implementar o oAuth 2.0...
Alguém já testou o Swithmail para saber se funciona ?
Ou alternativas funcionais de outro programa similar ?
Obrigado

Gusaiello 5 de mayo de 2022 17:16

Creo que lo que hay que hacer para que funcione es entrar en la configuración de la cuenta Gmail, en opciones de seguridad, aplicaciones de terceros y permitir el acceso de aplicaciones poco seguras.

Lascu 5 de mayo de 2022 20:30

A partir del 30 de mayo GMAIL no va a permitir más el acceso de aplicaciones poco seguras. El componente SwithMail dejará de funcionar (con GMAIL por lo menos).

Gusaiello 6 de mayo de 2022 13:45

Hola @Lascu, ni aún configurándolo para darle acceso a dichas aplicaciones?

Lascu 10 de mayo de 2022 18:42

@Gusaiello, fijate en GMAIL, dicen que directamente no va a estar más la opción para configurar aplicaciones poco seguras. Yo ya estoy buscando de que manera resolver esto.

fastpho 11 de mayo de 2022 14:37

Hola @Gusaiello @Lascu, Por que no utilizar como cliente de correo a Thunderbird por ejemplo que soporta la autenticación OAuth2 y realizar los envios de mail.

Saludos ....

Armando 11 de mayo de 2022 16:09

HOla, como están?

Nosotros estamos probando, la generación de una "App Password", la cual genera una nueva clave.
Para poder usar tienen que:
1) Acceder a la cuenta de Google, Gestionar tu cuenta de Google
2) Activar la verificación en dos pasos, de la Cuenta de Google (Seguridad), la cual te envía una clave al movil asociado para confirmarla.
3) Configurar "App Password" / Contraseña de Aplicaciones / Otra (nombre personalizado) /Generar

Te va a generar una nueva contraseña para usar en las aplicaciones, en tu programa sustituís la clave de la cuenta de google por esta nueva, y con eso quedaría andando.

Igual esperemos que el 01/06/22 todo funcione, hoy con esto hoy anda
Habilitar Aplicaciones no seguras no existe más, por lo que vimos.

saludos
Armando

Gusaiello 11 de mayo de 2022 20:43

@Lascu, @fastpho, Estas son las cosas que me dan cada vez mas ganas de retirarme!!!!:cens:

Siempre hay que estar nadando contra la corriente.

Solo me faltaría probar lo que propone @Armando y ver si resulta.

fastpho 22 de septiembre de 2022 18:21

1 Archivos Adjunto(s)
@Gusaiello, @Lascu@Armando
El programa SwithMail, funciona con Gmail año 2022 , realizando ciertos cambios en la cuenta de google
Ingresar en la cuenta que se quiere utilizar para enviar los correos y realizar los siguiente cambios
En el Menu Seguridad Iniciar sesion en Google activando Verificacion en dos pasos , la nueva contraseña
proporcionada debera ser ingresada en Configuracion SwithMail de la seccion PW

[ATTACH=CONFIG]784[/ATTACH]
En este link un video explicativo de como configurar la cuenta de gmail 2022 : https://www.youtube.com/watch?v=kZnTFUvc1ig
Saludos...

Gusaiello 27 de septiembre de 2022 15:53

@fastpho, EXCELENTE!!! muchas gracias.


La franja horaria es GMT +2. Ahora son las 14:46.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.