Histórico da Página
...
- 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 | ||||
---|---|---|---|---|
|
...
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.
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. Caso não informado, é utilizado o cadastro dos parâmetros de e-mail do produto. | |
porta | integer | 0 | Nú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.
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. Caso 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. 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. |
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 passado no padrão “[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 nesse 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 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. | |||||||
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. |
...
Exemplos
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
{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:
- Para o envio de FAX, é necessário que esteja instalado algum software client de envio de FAX.
- Quando a API for utilizada para envio de FAX, o campo tt-envio2.destino deve seguir o padrão de sintaxe “[fax:número]”.
- 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 | ||||
---|---|---|---|---|
| ||||
{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:
- Campo "exchange" retirado da tt-envio2, pois valor inicial é "no".
- Campo "remetente" é obrigatório e deve ter um valor válido.
- 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 | ||
---|---|---|
| ||
Bloco de código | ||
| ||
{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).