Histórico da Página
Informações | ||
---|---|---|
| ||
|
Objetivo
Utilização da API utapi019
...
para envio de mensagens pelo servidor de correio eletrônico..
Informações | ||
---|---|---|
| ||
|
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). 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.
...
Abaixo é possível visualizar onde cada atributo é obrigatório ou opcional:
...
- Para utilização do Blat, é necessário encontrar o arquivo “interfac/mail/blat.exe” na estrutura de diretórios do produto. Caso não seja encontrado, o e-mail será enviado sem o anexo. O arquivo “blat.exe” é distribuído gratuitamente junto às mídias/pacotes dos produtos Datasul.
- Só é possível enviar e-mail no formato HTML utilizando Outlook 2000 ou posterior.
- Não é possível enviar e-mail no formato HTML quando existir arquivo anexo no UNIX.
- (*) Caso seja selecionada a opção de utilizar o comportamento “ativar responder para”, o remetente padrão informado será quem vai receber a resposta do e-mail. E caso o campo remetente padrão estiver preenchido na tela de parâmetros de e-mail, e não for passado um remetente como parâmetro, será utilizado como remetente o supra citado que está cadastrado no campo remetente padrão (tela parâmetros e-mail foundation).
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.
...
ttAttachment
Possui informações dos arquivos que serão anexos ao e-mail.
...
tt-paramEmail
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.
...
Â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 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
ttAttachment
Possui informações dos arquivos que serão anexos ao e-mail.
Painel | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
|
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
...
Esse campo pode receber os seguintes valores:
0-Unix
1-Blat
2-Exchange
3-Java
4-MailSend (SSL)
5-DatasulMailServer
*** Caso for atribuído um valor diferente desses, o valor padrão será BLAT
...
Os parâmetros acima (tt-paramEmail) 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).
*Estes dois campos só funcionam com o tipo de envio de e-mail DatasulMailService, os mesmo foram incluídos na release 12.1.23.
tt-erro
Possui os erros encontrados pela API.
...
Exemplos
- .
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 |
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] |
...
.br" 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 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 |
...
influenciarão no funcionamento. 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
MESSAGE "OK" VIEW-AS ALERT-BOX.
DELETE PROCEDURE h-utapi019. |
Dica | ||
---|---|---|
| ||
1) Os valores para os campos 2) |
...
Os valores para os campos |
...
influenciarão no funcionamento. 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 | ||||
---|---|---|---|---|
| ||||
|