Árvore de páginas

Versões comparadas

Chave

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

Pré Requisitos

TOTVS 12 com versão 12.1.15 ou superior.

Servidor de e-mails com suporte  a SMTP e uma conta válida para envio de e-mails.

Mail Service

O Datasul Mail Service é um serviço que permite que tanto aplicações Progress como HTML possam realizar de forma simples o envio de e-mails.

Por se tratar de um serviço a chamada para o envio do e-mail se dá através de chamadas REST. A imagem abaixo exemplifica a arquitetura do serviço:

 

Configurações mínimas

Para utilização do serviço é preciso se atentar a algumas configurações no produto.

  • Configurar os parâmetros de localização e porta, interno e externo, do servidor de aplicação (JBoss) no programa 'Parâmetros Gerais Módulo Básico' (btb946aa) na aba 'Servidor'.

  • Configurar os parâmetros de envio de e-mail no programa 'Parâmetros Email Foundation' (btb962zb).

Serviços disponíveis

Através do contexto datasul-mail/resources estão disponíveis 3 serviços para envio de e-mails com as seguintes assinaturas:

...

  1. @GET /help

    1. Path: N/A.
    2. Query: N/A.
    3. Response: Retorna as propriedades do Mail Service (mail.smtp.sender, mail.smtp.auth, mail.smtp.user, mail.smtp.pass, mail.smtp.host, mail.smtp.port, mail.smtp.ssl.enable, mail.smtp.starttls.enable, mail.smtp.debug.enable).

    Exemplo: http://cordas:8480/dts/datasul-mail/resources/help/

  2. @POST /send: @Consumes({ MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN })

    Este serviço recebe o e-mail e suas opções para envio. Não suporta anexos.

    1. Path: N/A.
    2. Query: N/A.
    3. Body: JSON contendo a entidade Mail;
    4. Response: Uma cópia da entidade Mail em formato JSON.

    Exemplo: http://cordas:8480/dts/datasul-mail/resources/send/

  3. @POST /send: @Consumes(MediaType.MULTIPART_FORM_DATA)

    Este serviço recebe o e-mail e suas opções para envio. Suporta anexos.

    1. Path: N/A.
    2. Query: N/A.
    3. Body: JSON contendo a entidade Mail;
    4. Response: Uma cópia da entidade Mail em formato JSON.

    Exemplo: http://cordas:8480/dts/datasul-mail/resources/send/

...

Dica

O envio de e-mail ocorre de forma assíncrona desta forma os erros ou retornos de falhas do envio propriamente dito não são resgatados no momento da execução. Isso se deve ao fato de que o Datasul Mail Service delega ao servidor SMTP o envio da mensagem, sendo que este pode não efetuar o envio no momento em que for solicitado, variando de acordo com a sua fila de despachos e parametrizações.

API Progress

A API a ser utilizada no progress é a utapi019.p. Esta API está preparada para enviar e-mails de acordo com a configuração indicada no programa 'Parâmetros Email Foundation' (btb962zb).

Para mais informações sobre como utilizar a API utapi019, utilize a documentação disponivel em Utilização de API de envio de e-mail.

API Javascript

Está é a API para utilização nos projetos com o THF.

...

  • send
    • email: contendo o objeto Mail;
    • callback: função a ser chamada quando terminar o processo.

  • sendWithAttachment
    • email: contendo o objeto Mail;
    • files: anexo ou lista de arquivos anexos obtidos através do seletor de arquivos do navegador;
    • callback: função a ser chamada quando terminar o processo.
    • callbackProgress: função que devolve o '%' de progresso do envio dos anexos para o serviço, o evento retornado pelo server a entidade de Mail relacinada ao anexo;
    • callbackError: função a ser chamada caso ocorra algum erro inesperado.

Exemplos

Bloco de código
languagejs
firstline1
titleJavascript: send
linenumberstrue
collapsetrue
var controller;

controller = function ($rootScope, $scope, MailService) {
	this.sendEmail = funcion() {
		MailService.send({
			reply: "[email protected]",
			alias: "[email protected]",
		    to: "[email protected]",
			cc: "[email protected]",
			subject: "Datasul Mail Service",
			content: "Hello from the other side !"
		}, function(result) {
			console.info(result);
		});
    };
};

controller.$inject = ['$rootScope', '$scope', 'MailService'];

...