0

![]() |
![]() |
Super Moderador |
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.-
![]() |
![]() |
Acabo de llegar... |
@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
![]() |
![]() |
Super Moderador |
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.-
![]() |
![]() |
Acabo de llegar... |
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
![]() |
![]() |
Senior |
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):
COBOL Código:
string "SwithMail.exe /s /x swc.xml" delimited by size " /to " delimited by size *> para wTO delimited by " " into CommandLine end-string IF wCC NOT = SPACES STRING CommandLine DELIMITED BY " " *> CC " /CC " delimited by size wCC delimited by " " INTO CommandLine end-string END-IF STRING CommandLine DELIMITED BY " " ' /sub "' delimited by size wSUBJECT delimited by " " *> assunto '"' delimited by size INTO CommandLine end-string STRING CommandLine DELIMITED BY " " ' /b ' delimited by size *> body '"' delimited by size wBODY delimited by " " '"' delimited by size into CommandLine end-string IF wATTACH NOT = SPACES STRING CommandLine DELIMITED BY " " ' /a ' delimited by size '"' delimited by size wATTACH DELIMITED BY " " *> anexo1 '"' delimited by size INTO CommandLine end-string END-IF INVOKE pow-self "Execute" USING CommandLine POW-SWHIDE
![]() |
![]() |
Acabo de llegar... |
![]() |
![]() |
Senior |
COBOL Código:
IF wATTACH NOT = SPACES STRING CommandLine DELIMITED BY " " ' /a ' delimited by size '"' delimited by size wATTACH DELIMITED BY " " *> anexo1 '"' delimited by size INTO CommandLine end-string END-IF IF wATTACH2 NOT = SPACES STRING CommandLine DELIMITED BY " " '|' delimited by size wATTACH2 DELIMITED BY " " *> anexo2 '"' delimited by size INTO CommandLine end-string 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).
![]() |
![]() |
Junior |
![]() |
![]() |
Acabo de llegar... |
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@teste.com>: 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.
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)
Marcadores