Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  • A utilização dessa API não é recomendada em ambientes WEB, pois a mesma pode solicitar informações ao usuário e, no caso de executar o Blat, o usuário do IIS deverá ter permissão para efetuar a tarefa de envio e rodar o aplicativo Blat.
  • A include utapi019.i contém as definições das temp-table's tt-envio2, tt-mensagem e tt-erro que devem ser passadas como parâmetros à API.
  • A include utapi019.i1 contém a definição da temp-table tt-paramEmail e chamada para a include utapi019.i, resultando na definição de todas as temp-table's necessárias para chamadas à API.
  • É possível enviar e-mail e FAX em ambiente Windows e apenas e-mail em ambiente UNIX.
  • Será utilizado Outlook ou Blat no ambiente Windows ou comando sendmail no ambiente UNIX para envio de e-mail e será utilizado Outlook para envio de FAX.
  • O Blat é um software freeware para envio de e-mail via protocolo SMTP, encontra-se no diretório (interfac/mail).
  • Quando for utilizado envio de e-mail numa sessão background do Progress(batch-mode) e o ambiente for Windows, a API utilizará sempre o Blat.
  • No envio da mensagem através de ambiente UNIX, o sendmail e o uuencode devem estar configurados corretamente. Para testar o funcionamento do comando, digite no prompt, usando o mesmo usuário e na mesma pasta em que a API será executada, os respectivos comandos sendmail e uuencode. A execução destes programas não deve apresentar erros. Caso ocorram erros deve-se entrar em contato com a equipe de suporte do sistema operacional do servidor.
  • A API possui um evento de UPC chamado eMailBlat, que permite ao cliente alterar o comando de execução do Blat. Esse ponto de customização foi criado para atender as necessidades dos clientes que precisam informar informações específicas do seu serviço de e-mail, que não são contempladas pelos produtos Datasul.
  • A API tem algumas restrições ao ser comparado a um serviço de e-mail, ela não faz validações dos tipos de arquivos anexados a mensagem, nem outros tipos de tratamento que um serviço de e-mail realiza. Caso ocorra alguma destas validações que a API não trata, será tratado pela API que todos os e-mails foram enviados corretamente.
  • Caso houver algum erro no envio do e-mail, o remetente receberá um e-mail do serviço de e-mail, que a mensagem não pode ser enviada ao destinatário.
  • Em Agosto de 2012 foi incluído uma nova forma de envio de e-mail, que é utilizando a aplicação JAVA. Essa funcionalidade não está disponível para os envios padrões do produto. Essa funcionalidade só pode ser utilizada com programas específicos que utilizarem a API. No decorrer desta documentação serão detalhados os procedimentos para utilização.
  • Em Junho de 2013 foi disponibilizado o envio de e-mail com SSL que utiliza o programa MailSend que é freeware. Esse programa envia e-mails via protocolo SMTP e encontra-se no diretório (interfac/mail). Essa funcionalidade não esta disponível para os envios padrões do produto. Essa funcionalidade só pode ser utilizada com programas específicos que utilizarem a API. No decorrer desta documentação serão detalhados os procedimentos para utilização.

Âncora
parametros
parametros
Parâmetros de e-mail

...

O produto possui um cadastro de parâmetros de e-mail (BTB962ZB). Estes parâmetros serão utilizados quando não informados na temp-table enviada à API:

Image Added

Temp-tables

...

tt-envio2

Possui definições da mensagem a ser enviada.

...

AtributoTipoValor InicialDescrição
caminhoEmailinteger1

Esta campo pode receber os seguintes valores:
0-Unix
1-Blat
2-Exchange
3-Java
4-MailSend (SSL)
*** Se for atribuído um valor diferente destes, o valor padrão será BLAT

...

Execução

...

A API possui dois métodos que podem ser executados:

...

Bloco de código
titleE-mail - outros métodos
{utp/utapi019.i1}
RUN utp/utapi019.p PERSISTENT SET h-utapi019.

CREATE tt-envio2.
ASSIGN tt-envio2.versao-integracao = 1
       tt-envio2.servidor    = "172.16.1.80"
       tt-envio2.porta       = 25
       tt-envio2.destino     = "[email protected],[email protected]"
       tt-envio2.remetente   = "[email protected]"
       tt-envio2.assunto     = "subject"
       tt-envio2.arq-anexo   = "c:/tmp/texto.doc"
       tt-envio2.formato     = "HTML".

CREATE tt-mensagem.
ASSIGN tt-mensagem.seq-mensagem = 1
       tt-mensagem.mensagem     = "<h1><center>message body 1</pre>".

CREATE tt-mensagem.
ASSIGN tt-mensagem.seq-mensagem = 2
       tt-mensagem.mensagem     = "<h1><center>message body 2</pre>".

CREATE tt-paramEmail.
ASSIGN tt-paramEmail.caminhoEmail = 3. /*0-Unix,1-Blat,2-Exchange,3-Java,4-MailSend*/

OUTPUT to value(SESSION:TEMP-DIRECTORY + "envemail.txt"). 
    RUN pi-execute3 IN h-utapi019 (INPUT  table tt-envio2,
                                   INPUT  table tt-mensagem,
                                   INPUT  table tt-paramEmail,
                                   OUTPUT table tt-erros).
OUTPUT close.
       
IF  RETURN-VALUE = "NOK" THEN DO:
    FOR EACH tt-erros:
        DISP tt-erros WITH 1 COLUMN WIDTH 300.
    END. 
END.

DELETE PROCEDURE h-utapi019.

Autenticação

...

Ponto de customização

...

A API possui eventos de UPC que permitem ao cliente alterar o comando de execução. Esses pontos foram criados para atender as necessidades de clientes que precisam adicionar informações específicas não contempladas no produto Datasul.

OBS: Não é mais necessário alterar a linha de comando para adição de usuário e senha, a autenticação é feita através dos dados informados nos parâmetros.

Bloco de código
titleExemplo de UPC - BLAT
linenumberstrue
{include/i-epc200.i1} /* definição da temp-table tt-epc */

DEFINE INPUT        PARAMETER p-ind-event AS CHARACTER NO-UNDO.
DEFINE INPUT-OUTPUT PARAMETER TABLE       FOR tt-epc.

DEFINE VARIABLE cComandoEmail AS CHARACTER NO-UNDO.

IF p-ind-event = "eMailBlat" THEN DO:
    FIND FIRST tt-epc
        WHERE tt-epc.cod-event     = "eMailBlat":U
        AND   tt-epc.cod-parameter = "CommandEmail":U
        EXCLUSIVE-LOCK NO-ERROR.
    IF AVAILABLE tt-epc THEN 
        ASSIGN cComandoEmail = tt-epc.val-parameter.
    
    ASSIGN cComandoEmail = cComandoEmail + " -hostname ~"tech-valdir~"":U.

    IF AVAILABLE tt-epc THEN 
        ASSIGN tt-epc.val-parameter = cComandoEmail.
END.

...