Histórico da Página
Informações | ||
---|---|---|
| ||
|
Objetivo
Utilização da API utapi019
...
para envio de mensagens
...
Informações | ||
---|---|---|
| ||
|
pelo servidor de correio eletrônico
...
..
Fontes
$/FOUNDATION/Fontes_Doc/Sustentacao/V11/V11/progress/src/utp
utapi019.p
utapi019.i
utapi019.i1
utapi019.i2
Considerações gerais
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
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:
Temp-tables
tt-envio2
Possui definições da mensagem a ser enviada.
Atributo | Tipo | Valor Inicial | Descrição |
---|---|---|---|
versao-integracao | integer | Versão de integração da API. | |
servidor | character | Hostname ou endereço IP do servidor de e-mail. Se não informado, é utilizado o cadastro dos parâmetros de e-mail do produto. | |
porta | integer | 0 | Número da Porta do servidor de e-mail. Se não informado, é utilizado o cadastro dos parâmetros globais do produto. Só influencia quando utilizado OCX para envio da mensagem. |
exchange | logical | no | Utilizar servidor Exchange para envio da mensagem. |
destino | character | 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 passada a inicial “[fax:número]”. | |
copia | character | Cópia Carbono da mensagem. Quando é mais de um, devem ser separados por vírgulas. Para ambiente UNIX, os endereços adicionados neste campo serão incluídos no campo "para". | |
remetente | character | 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. | |
assunto | character | Assunto da mensagem. | |
mensagem | character | Corpo da mensagem. Informação obrigatória. | |
arq-anexo | character | Caminho completo do arquivo a ser anexado na mensagem. Disponível apenas para envio de mensagem através de MS-Exchange, Blat, Java e UNIX. Em outros casos, é incorporado na mensagem, o caminho do arquivo. Para anexar mais de um arquivo os mesmos devem ser separados por virgula. | |
importancia | integer | 0 | Ní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-enviada | logical | no | Envia uma mensagem para o remetente assim que a sua mensagem original for enviada. Só influencia quando utilizado servidor Exchange. |
log-lida | logical | no | Envia uma mensagem para o remetente assim que a sua mensagem original for lida. Só influencia quando utilizado servidor Exchange. |
acomp | logical | yes | Execução do utilitário ut-acomp, para verificar o desenvolvimento da execução. Só influencia quando utilizado servidor Exchange. |
formato | character | Texto | Aceita dois valores: "TEXTO", para enviar e-mail sem formatação e "HTML" , onde o e-mail será enviado no formato HTML. |
Abaixo é possível visualizar onde cada atributo é obrigatório ou opcional:
...
...
Âncora | ||||
---|---|---|---|---|
|
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.
Painel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Abaixo é possível visualizar onde cada atributo é obrigatório ou opcional:
Painel | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
|
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
Informações | ||
---|---|---|
| ||
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
tt-mensagem
Possui o conteúdo da mensagem enviada. Essa temp-table
foi criada porque o número máximo de caracteres por registro no Progress é de 32kb e
...
caso a mensagem do e-mail possuísse mais 32 Kb
...
era exibida a mensagem Progress 444. Com essa temp-table
será possível enviar e-mail com quantos caracteres forem necessários, menos com a opção Exchange que ainda mantém
...
essa limitação.
...
Painel |
---|
...
|
...
|
...
| ||||||
|
...
|
...
|
tt-erro
...
ttAttachment
Possui informações dos arquivos que serão anexos ao e-mail.
Painel | ||||
---|---|---|---|---|
| ||||
|
...
|
...
|
...
|
...
|
...
|
...
tt-paramEmail
Indica tipo de envio de e-mail.
Atributo | Tipo | Valor Inicial | Descrição |
---|---|---|---|
caminhoEmail | integer | 1 | Esta campo pode receber os seguintes valores: |
Execução
A API possui dois métodos que podem ser executados:
- pi-execute3: recebe quatro temp-tables como parâmetros: tt-envio2 (INPUT), tt-mensagem (INPUT), tt-paramEmail (INPUT) e tt-erros (OUTPUT).
- pi-execute2: recebe três temp-table's como parâmetros: tt-envio2 (INPUT), tt-mensagem (INPUT) e tt-erros (OUTPUT). Esse método possui as seguintes validações para o tipo de envio:
- se o sistema operacional for UNIX, utilizará envio via UNIX;
- se não for UNIX e o campo tt-envio2.exchange estiver marcado, utilizará envio via exchange;
- caso contrário, utilizará o envio via BLAT.
A API irá executar duas validações básicas:
...
|
Informações |
---|
O envio de anexos via Datasul Mail Service funciona somente através da tabela A tabela pode ser utilizada também para os outros métodos de envio. |
tt-paramEmail
Indica somente o tipo de envio de e-mail (campo caminhoEmail
) e sua evolução segue na definição da TempTable tt-paramEmail2
, abaixo.
tt-paramEmail2
Informações |
---|
A include utapi019.i2 contempla a Definição da |
Indica tipo de envio de e-mail, usuário e senha para autenticação no servidor de e-mail caso venha a ser necessário, opção de ativar comportamento de resposta do para utilização de remetente padrão.
Painel | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
|
Os parâmetros acima (tt-paramEmail2
) não são obrigatórios, caso não sejam informados, serão utilizadas as informações da tela de parâmetros de e-mail do foundation (btb962zb
).
Informações | ||
---|---|---|
| ||
(*) Estes dois campos só funcionam com o tipo de envio de e-mail Datasul Mail Service. Os mesmo foram incluídos na release 12.1.23. |
Aviso | ||
---|---|---|
| ||
Para execução do programa de teste do Datasul Mail Service na release 12.1.29 o supra citado deverá ser compilado, ou, deve possuir no propath a include prgvers.i, nesta versão ainda existia um pré-processador de versão que é utilizado em tempo de compilação, o progress na execução de um código no editor realiza a compilação para realizar a execução, desta forma, se o programa de exemplo for compilado, ou, existir a include no propath o erro de "O parâmetro identificador de temp-table tt-paramEmail2 não confere com a temp-table destino tt-paramEmail2. (5363)" não irá ocorrer. |
tt-erro
Possui os erros encontrados pela API.
Painel | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
|
Âncora replyto replyto
Funcionalidade Responder Para
replyto | |
replyto |
A funcionalidade Responder Para serve foi criada para que a resposta do e-mail seja direcionada para um endereço diferente do que o utilizado para o envio, por exemplo, equipes de marketing. Caso a função seja ativada, a resposta ao e-mail será enviada ao valor informado no campo "remetente" da tabela tt-envio2. Caso este campo não esteja preenchido, será utilizado o remetente informado no cabeçalho do e-mail. Para decisão do remetente do e-mail enviado será utilizada a seguinte estrutura:
- campo "codRemetPadrao" da tabela tt-paramEmail2;
- campo "Remetente Padrão" da tela Parâmetros Email Foundation (BTB962ZB);
- campo "remetente" da tabela tt-envio2.
Execução
A API possui um método que pode ser executado:
- pi-execute4: recebe cinco temp-tables como parâmetros: tt-envio2 (INPUT), tt-mensagem (INPUT), tt-paramEmail (INPUT), ttAttachment (INPUT) e tt-erros (OUTPUT).
A API irá executar duas validações básicas:
- Versão de integração: verifica se o programa chamador está íntegro com a API, e isto ocorre por meio da verificação da versão de integração passada como parâmetro. Caso a versão esteja incompatível, a API abortará a execução retornando a mensagem 3941.
- Inconsistência ou
...
- insuficiência de dados: verifica a inconsistência e/ou insuficiência dos dados. Isto ocorre
...
- por meio da verificação dos dados passados como parâmetros. Caso os dados sejam inconsistentes ou insuficientes, a API abortará a execução retornando o código de erro 8646. Cabe ao programa de origem, verificar a consistência do registro que está sendo enviado.
Existem dois retornos possíveis para a execução da API:
- OK: Mensagem enviada com sucesso.
- NOK: Envio de mensagem abortado. Os erros encontrados serão retornados
...
- por meio da temp-table tt-erros.
...
Exemplos
Nota | ||
---|---|---|
| ||
Para correto funcionamento dos exemplos, os mesmo devem ser compilados antes da execução |
Exemplos
...
Bloco de código | |
---|---|
|
...
| |||
{utp/utapi019.i2} RUN utp/utapi019.p PERSISTENT SET h-utapi019 |
...
. CREATE tt-envio2. ASSIGN tt-envio2.versao-integracao = 1 tt-envio2.destino = "[email protected]" tt-envio2.remetente = "[email protected]" tt-envio2. |
...
assunto = |
...
"teste envio DATASUL MAIL SERVICE". CREATE ttAttachment. ASSIGN ttAttachment.fileName |
...
= " |
...
teste.txt" |
...
ttAttachment.fileType = " |
...
text/plain". // COPIANDO CONTEÚDO DE ARQUIVO DO COMPUTADOR PARA O CAMPO BLOB COPY-LOB FILE "C:\teste.txt" TO ttAttachment.fileContent. //conteúdo do arquivo em formato binário 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". CREATE tt-paramEmail2. ASSIGN tt-paramEmail2.caminhoEmail = 5. RUN pi-execute4 in h-utapi019(INPUT TABLE 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:
|
...
DISP tt-erros WITH 1 COLUMN |
...
Observações:
...
WIDTH 300.
END.
END.
ELSE
MESSAGE "OK" VIEW-AS ALERT-BOX.
DELETE PROCEDURE h-utapi019. |
Dica | ||
---|---|---|
| ||
1) Os valores para os 2) Os valores para os campos 3) Os valores para os campos 4) Não é necessário popular a |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{utp/utapi019. |
...
i2} RUN utp/utapi019.p PERSISTENT SET h-utapi019. CREATE tt-envio2. ASSIGN tt-envio2.versao-integracao = 1 |
...
tt-envio2.servidor |
...
|
...
|
...
= " |
...
servidor" tt-envio2. |
...
porta |
...
|
...
= 999 tt-envio2. |
...
exchange |
...
|
...
= FALSE tt-envio2. |
...
destino |
...
= " |
...
destino@dominio" |
...
|
...
tt- |
...
envio2.remetente = "remetente@dominio" tt- |
...
envio2. |
...
assunto |
...
|
...
|
...
|
...
|
...
|
...
= |
...
"teste envio BLAT" tt-envio2.arq-anexo |
...
= " |
...
XXXXX". |
...
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". CREATE tt-paramEmail2. ASSIGN tt-paramEmail2.caminhoEmail = 1. RUN pi-execute4 in h-utapi019(INPUT TABLE 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: DISP tt-erros WITH 1 COLUMN WIDTH 300. |
...
END. |
...
END. ELSE |
...
Observações:
- Campo "exchange" retirado da tt-envio2, pois valor inicial é "no".
- Campo "remetente" é obrigatório e deve ter um valor válido.
- Campo "copia" é opcional.
...
MESSAGE "OK" VIEW-AS ALERT-BOX.
DELETE PROCEDURE h-utapi019. |
Dica | ||
---|---|---|
| ||
1) Os valores para os campos 2) Os valores para os campos 3) Não é necessário popular a |
Bloco de código | ||
---|---|---|
|
...
{utp/utapi019. |
...
i2} RUN utp/utapi019.p PERSISTENT SET h-utapi019. CREATE tt-envio2. ASSIGN tt-envio2.versao-integracao = 1 |
...
tt-envio2.destino |
...
= " |
...
destino@dominio" |
...
...
tt-envio2. |
...
assunto |
...
|
...
= "teste envio EXCHANGE" tt-envio2. |
...
arq-anexo = " |
...
XXXXX" |
...
tt-envio2. |
...
importancia |
...
= 1 tt-envio2. |
...
log-enviada = |
...
TRUE |
...
tt-envio2. |
...
log- |
...
lida |
...
|
...
= TRUE. 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". CREATE tt- |
...
paramEmail2. ASSIGN tt- |
...
paramEmail2. |
...
caminhoEmail = 2. RUN pi-execute4 in h-utapi019(INPUT TABLE 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: DISP tt-erros WITH 1 COLUMN WIDTH 300. END. END. ELSE MESSAGE "OK" |
...
VIEW-AS ALERT-BOX.
DELETE PROCEDURE h-utapi019. |
Dica | ||
---|---|---|
| ||
1) Os valores para os campos mailUser, mailPass, TLS, SSL, debug, ativaRemetPadrao e codRemetPadrao podem ser desconsiderados na tabela tt-paramEmail2 porque não influenciarão no funcionamento.3) Não é necessário popular a 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.
Nota | ||
---|---|---|
|
...
A partir da versão 12.1.7, não é mais necessário alterar a linha de comando para adição de usuário e senha, a autenticação é feita |
...
por meio dos dados informados nos parâmetros. |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{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. |
O nome do evento pode possuir os seguintes valores:
Painel | ||||
---|---|---|---|---|
| ||||
|