Á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.
  • Por padrão, 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.
  • 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 em 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 eventos de UPC que permitem ao usuário alterar o comando de execução do envio. Esses pontos foram desenvolvidos para atender às necessidades de usuários que precisam adicionar informações específicas de ser 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: não efetua validações dos tipos de arquivos anexados à mensagem nem outros tipos de tratamento que um serviço de e-mail realiza. Caso ocorra alguma dessas validações que a API não trata, será considerado pela API que todos os e-mails foram enviados corretamente.
    Em Agosto de 2012 foi incluído uma nova forma de envio

Âncora
parametros
parametros
Parâmetros de e-mail

...

O produto possui um cadastro de parâmetros de e-mail

...

(BTB962ZB). Mais informações quanto a parametrização estão disponíveis em: Parâmetros Email Foundation (BTB962ZB).

Esses parâmetros serão utilizados quando não informados na temp-table enviada à API:

Temp-tables

...

tt-envio2

Possui definições da mensagem a ser enviada.

AtributoTipoValor InicialDescrição
versao-integracaointeger
Versão de integração da API.
servidorcharacter
Hostname ou endereço IP do servidor de e-mail. Caso não informado, é utilizado o cadastro dos parâmetros de e-mail do produto.
portainteger0Número da Porta

...

O produto possui um cadastro de parâmetros de e-mail (BTB962ZB). Mais informações quanto a parametrização estão disponíveis em: Parâmetros Email Foundation (BTB962ZB).

Esses parâmetros serão utilizados quando não informados na temp-table enviada à API:

Temp-tables

tt-envio2

Possui definições da mensagem a ser enviada.

AtributoTipoValor InicialDescrição
versao-integracaointegerVersão de integração da API.servidorcharacterHostname ou endereço IP do servidor de e-mail. Caso não informado, é utilizado o cadastro dos parâmetros de e-mail do produto.portainteger0Número da Porta do servidor de e-mail. Caso não informado, é utilizado o cadastro dos parâmetros globais do produto. Só influencia globais do produto. Só influencia quando utilizado OCX para envio da mensagem.
exchangelogicalnoUtilizar servidor Exchange para envio da mensagem.
destinocharacter
Destinatário(s) da mensagem.  Quando é mais de um, devem ser separados por vírgulas. Deve ser informado obrigatoriamente. Quando for utilizado para envio de fax, deve ser passado no padrão “[fax:número]”.
copiacharacter
Cópia Carbono da mensagem. Quando é mais de um, devem ser separados por vírgulas. Para ambiente UNIX, os endereços adicionados nesse campo serão incluídos no campo "para".
remetentecharacter
Remetente da mensagem. Só influencia quando utilizado OCX para envio da mensagem. Precisa ter os padrões de um endereço de e-mail([email protected]). Tem que ser um e-mail valido quando utilizado JAVA.
assuntocharacter
Assunto da mensagem.
mensagemcharacter
Corpo da mensagem. Informação obrigatória.
arq-anexocharacter
Caminho completo do arquivo a ser anexado na mensagem. Disponível apenas para envio de mensagem por MS-Exchange, Blat, Java e UNIX. Em outros casos, é incorporado na mensagem, o caminho do arquivo. Para anexar mais de um arquivo, eles devem ser separados por virgula.
importanciainteger0Nível da importância da mensagem. Só influencia quando utilizado servidor Exchange. Os valores possíveis são de 0 a 2: 0 – Prioridade Baixa, 1 – Prioridade Normal, 2 – Prioridade Alta.
log-enviadalogicalnoEnvia uma mensagem para o remetente assim que a sua mensagem original for enviada. Só influencia quando utilizado servidor Exchange.
log-lidalogicalnoEnvia uma mensagem para o remetente assim que a sua mensagem original for lida. Só influencia quando utilizado servidor Exchange.
acomplogicalyesExecução do utilitário ut-acomp, para verificar o desenvolvimento da execução. Só influencia quando utilizado servidor Exchange.
formatocharacterTextoAceita dois valores: "TEXTO", para enviar e-mail sem formatação e "HTML" , onde o e-mail será enviado no formato HTML.

...

Exemplos

...


Bloco de código
titleFaxDatasul Mail Service
linenumberstrue
{utp/utapi019.ii2}

RUN utp/utapi019.p PERSISTENT SET h-utapi019.

CREATE tt-envio2.
ASSIGN tt-envio2.versao-integracao = 1
       tt-envio2.destino     = "[fax:0,0474417020]"   
    [email protected]"	
	   tt-envio2.assuntoremetente     = "xxxxxxxxxx"  [email protected]"
	   tt-envio2.assunto   = 
"teste envio DATASUL MAIL SERVICE"
	   tt-envio2.arq-anexo   = "c:/tmp/api-fax.docC:\teste.txt".

CREATE tt-mensagem.
ASSIGN tt-mensagem.seq-mensagem = 1
    	   tt-mensagem.mensagem = "Mensagem 1".

CREATE tt-mensagem.
ASSIGN tt-mensagem.seq-mensagem = 2
       tt-mensagem.mensagem = "Mensagem 2".

OUTPUT TO VALUE(SESSION:TEMP-DIRECTORY + "envemail.txt").
    CREATE tt-paramEmail2.
ASSIGN tt-paramEmail2.caminhoEmail = 5.

RUN pi-execute2execute4 INin h-utapi019(INPUT  TABLE tt-envio2,
                                 INPUT INPUT TABLE tt-mensagem,
							  INPUT  TABLE tt-paramEmail2,
							  INPUT  TABLE ttAttachment,
							                        OUTPUT OUTPUT TABLE tt-erros).
OUTPUT CLOSE.
 
IF RETURN-VALUE = "NOK" THEN DO:
    FOR EACH tt-erros:
        DISPLAY DISP
			tt-erros WITH 1 COLUMN WIDTH 300.
    END.
END.
ELSE
    MESSAGE "OK" VIEW-AS ALERT-BOX.

DELETE PROCEDURE h-utapi019.

Observações:

  1. Para o envio de FAX, é necessário que esteja instalado algum software client de envio de FAX.
  2. Quando a API for utilizada para envio de FAX, o campo tt-envio2.destino deve seguir o padrão de sintaxe “[fax:número]”.
  3. Caso haja a necessidade de enviar mais de 32kb de texto, a mensagem que será apresentada no FAX, deve estar dentro do arquivo anexo.

1)     Os valores para os campos mensagem, importancia, log-enviada, log-lida e acomp podem ser desconsiderados na tabela tt-envio2 porque não influenciarão no funcionamento.

2)     Os valores para os campos servidor e porta são opcionais para a tabela tt-envio2. Caso não sejam informados, serão utilizados os valores cadastrados nos parâmetros de e-mail.

3)     Os valores para os campos mailUser, mailPass, TLS, SSL, debug, ativaRemetPadrao e codRemetPadrao podem ser desconsiderados na tabela tt-paramEmail2 porque não influenciam no funcionamento.

4)     Não é necessário alimentar a temp-table tt-paramEmail2 com dados, porém é obrigatório sua definição.



Bloco de código
titleE-mail - BLAT
linenumberstrue
{utp/utapi019.ii2}

RUN utp/utapi019.p PERSISTENT SET h-utapi019.

CREATE tt-envio2.
ASSIGN tt-envio2.versao-integracao = 1
    	   tt-envio2.servidor          = "172.16.1.80servidor"
       tt-envio2.porta       = 25
     = 999
	   tt-envio2.destinoexchange      = "[email protected],[email protected]"
   = FALSE
	   tt-envio2.remetentedestino           = "[email protected]destino@dominio"
	   tt-envio2.remetente    tt-envio2.assunto     = "subjectremetente@dominio"
    	   tt-envio2.arq-anexoassunto    = "c:/tmp/texto.doc"
           = "teste envio BLAT"
	   tt-envio2.formatoarq-anexo         = "HTMLXXXXX".

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

CREATE tt-mensagem.
ASSIGN tt-mensagem.seq-mensagem = 2
    	   tt-mensagem.mensagem     = "<h1><center>message body 2</pre>"Mensagem 2".
OUTPUT to value(SESSION:TEMP-DIRECTORY + "envemail.txt"). 
    
CREATE tt-paramEmail2.
ASSIGN tt-paramEmail2.caminhoEmail = 1.

RUN pi-execute2execute4 INin h-utapi019 (INPUT  tableTABLE tt-envio2,
							  INPUT  TABLE tt-mensagem,
							  INPUT  TABLE tt-paramEmail2,
							  INPUT  TABLE ttAttachment,
							  OUTPUT TABLE tt-erros).

IF RETURN-VALUE = "NOK" THEN DO:
    FOR EACH tt-erros:
      INPUT  tableDISP tt-mensagem,
erros WITH 1 COLUMN WIDTH 300.
                              OUTPUT table tt-erros).
OUTPUT close.END.
END.
ELSE
    MESSAGE "OK" VIEW-AS ALERT-BOX.

IFDELETE PROCEDURE RETURN-VALUE = "NOK" THEN DO:
    FOR EACH tt-erros:
        DISP tt-erros WITH 1 COLUMN WIDTH 300.
    END. 
END.
DELETE PROCEDURE h-utapi019.

Observações:

  1. Campo "exchange" retirado da tt-envio2, pois valor inicial é "no".
  2. Campo "remetente" é obrigatório e deve ter um valor válido.
  3. Campo "copia" é opcional.
h-utapi019.

Observações:

1)     Os valores para os campos mensagem, importância, log-enviada, log lida e acomp podem ser desconsiderados na tabela tt-envio2 porque não influenciarão no funcionamento.

2)     Os valores para os campos mailUser, mailPass, TLS, SSL, debug, ativaRemetPadrao e codRemetPadrao podem ser desconsiderados na tabela tt-paramEmail2 porque não influenciam no funcionamento.

3)     Não é necessário alimentar a temp-table tt-paramEmail2 com dados, porém é obrigatório sua definição.


Bloco de código
titleMS-Exchange
Bloco de código
titleE-mail - outros métodos
{utp/utapi019.i1i2}

RUN utp/utapi019.p PERSISTENT SET h-utapi019.


CREATE tt-envio2.
ASSIGN tt-envio2.versao-integracao = 1
    	   tt-envio2.servidordestino      = "172.16.1.80"
     = "destino@dominio"
	   tt-envio2.portaassunto       = 25
   = "teste envio EXCHANGE"
	   tt-envio2.destinoarq-anexo         = "[email protected],[email protected]XXXXX"
    	   tt-envio2.remetenteimportancia   = "[email protected]"
   = 1
	   tt-envio2.assuntolog-enviada       = "subject"
   TRUE
	    tt-envio2.arqlog-anexolida   = "c:/tmp/texto.doc"
       tt-envio2.formato     = "HTML"TRUE.

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

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


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

OUTPUT to value(SESSION:TEMP-DIRECTORY + "envemail.txt"). 

 
RUN pi-execute4 in h-utapi019(INPUT  TABLE tt-envio2,
          RUN pi-execute3 IN h-utapi019 (INPUT  table tt-envio2,
             INPUT  TABLE tt-mensagem,
                   INPUT  table tt-mensagem,
        INPUT  TABLE tt-paramEmail2,
                         INPUT  table tt-paramEmail,
  INPUT  TABLE ttAttachment,
                              OUTPUT tableTABLE tt-erros).
OUTPUT close.
       
IF  RETURN-VALUE = "NOK" THEN DO:
    FOR EACH tt-erros:
        DISP tt-erros WITH 1 COLUMN WIDTH 300.
    END. 
END.
ELSE
    MESSAGE "OK" VIEW-AS ALERT-BOX.


DELETE PROCEDURE h-utapi019.

1)     Os valores para os campos servidor, porta, remetente e mensagem podem ser desconsiderados na tabela tt-envio2 porque não influenciarão no funcionamento.

2)     Os valores para os campos mailUser, mailPass, TLS, SSL, debug, ativaRemetPadrao e codRemetPadrao podem ser desconsiderados na tabela tt-paramEmail2 porque não influenciam no funcionamento.

3)     Não é necessário alimentar a temp-table tt-paramEmail2 com dados, porém é obrigatório sua definição.

4)     Os campos importancia, log-enviada, log-lida e acomp só influem neste tipo de execução e são opcionais.

Pontos de customização

...

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

...

  • eMailUnix: evento para customização de envio em UNIX (tt-paramEmail.caminhoEmail = 0);
  • eMailBlat: evento para customização de envio via BLAT (tt-paramEmail.caminhoEmail = 1);
  • SaveEmail: evento para customização de envio via Exchange (tt-paramEmail.caminhoEmail = 2);
  • eMailJava: evento para customização de envio via JAVA (tt-paramEmail.caminhoEmail = 3);
  • eMailSend: evento para customização de envio via MailSend (tt-paramEmail.caminhoEmail = 4).