--- title: Envio de e-mails personalizados (notifier.notify) source: https://tdn.totvs.com/pages/viewpage.action?pageId=852915615 path: \Plataforma Documentação técnica\Personalização\Personalização de e-mail\Envio de e-mails personalizados (notifier.notify).md --- # Índice - 1 [Introdução](#Enviodeemailspersonalizados(notifier.notify)-Introdução) - 2 [Sintaxe](#Enviodeemailspersonalizados(notifier.notify)-Sintaxe) - 3 [Parâmetros](#Enviodeemailspersonalizados(notifier.notify)-Parâmetros) - 3.1 [sender](#Enviodeemailspersonalizados(notifier.notify)-sender) - 3.2 [cardId](#Enviodeemailspersonalizados(notifier.notify)-cardId) - 3.3 [template](#Enviodeemailspersonalizados(notifier.notify)-template) - 3.4 [params](#Enviodeemailspersonalizados(notifier.notify)-params) - 3.5 [receivers](#Enviodeemailspersonalizados(notifier.notify)-receivers) - 3.6 [mimeType](#Enviodeemailspersonalizados(notifier.notify)-mimeType) - 4 [Exemplos](#Enviodeemailspersonalizados(notifier.notify)-Exemplos) - 4.1 [Envio de e-mail configurando alguns parâmetros](#Enviodeemailspersonalizados(notifier.notify)-Enviodee-mailconfigurandoalgunsparâmetros) - 4.2 [Envio de e-mail informando um formulário](#Enviodeemailspersonalizados(notifier.notify)-Enviodee-mailinformandoumformulário) - 5 [Pontos de atenção](#Enviodeemailspersonalizados(notifier.notify)-Pontosdeatenção) - 5.1 [Envio de mensagens para e-mails externos](#Enviodeemailspersonalizados(notifier.notify)-Enviodemensagensparae-mailsexternos) - 5.2 [Envio de dados de um formulário via solicitação](#Enviodeemailspersonalizados(notifier.notify)-Enviodedadosdeumformulárioviasolicitação) # Introdução Além dos diversos e-mails são disparados no Fluig, você pode [criar seus próprios templates de e-mail](https://tdn.totvs.com/pages/viewpage.action?pageId=234455436) e envia-los através dos scripts de personalização pelo método **notifier.notify** Para estes e-mails funcionarem, é necessário que tenha sido feita a [configuração de envio de e-mail](http://tdn.totvs.com/x/CAZbDw). # Sintaxe ``` notifier.notify(sender, template, params, receivers, mimeType); notifier.notify(sender, cardId, template, params, receivers, mimeType); ``` # Parâmetros ## sender Uma string contendo a matrícula (código do usuário) do usuário que será usado como remetente do e-mail caso não tenha sido configurado o remetente padrão na configuração de e-mail. Caso tenha sido configurado o remetente padrão, essa parâmetro será ignorado. ## cardId O código do registro de formulário vinculado à este e-mail. Informar o código do formulário adiciona alguns parâmetros adicionais que podem ser usados nos templates de e-mail: | Parâmetro | Descrição | | --- | --- | | WDK\_CardContent | Conteúdo HTML do formulário (simula a visualização) | | WDK\_DocumentAuthor | Nome do Autor | | WDK\_DocumentComments | Comentário adicional | | WDK\_DocumentDescription | Descrição do formulário | | WDK\_DocumentIconImage | Imagem do ícone do formulário | | WDK\_DocumentNumber | Número do formulário | | WDK\_DocumentUpdatedDate | Data de atualização do formulário | | WDK\_DocumentVersion | Versão do formulário | | WDK\_DocumentViewLink | Link para acesso ao formulário | ## template Uma string informando o código do template de e-mail que está sendo enviado. É o código usado no cadastro de template de e-mail. ## params É um mapa de dados que permite incluir parâmetros para que sejam apresentados no e-mail. O nome dos parâmetros informados nesse mapa devem ser os mesmos que são utilizados dentro do arquivo de template. Além dos parâmetros de uso no template, também pode ser adicionado a chave "subject" que será usado como assunto do e-mail. Caso não seja informado nada, o assunto do e-mail será "Fluig" Por padrão, são adicionados dois parâmetros em todas as notificações e eles podem ser usados no template de e-mail: | Parâmetro | Descrição | | --- | --- | | WDK\_VirtualDir | Diretório Virtual | | WDK\_AdviceUser | Nome do colaborador remetente | ## receivers Uma lista de strings com os códigos dos usuários para quem o e-mail será enviado ou os e-mails dos destinatários. Essa lista pode conter códigos de usuários e e-mails externos simultaneamente. ## mimeType Uma string que especifica o tipo de mídia do conteúdo do e-mail. Normalmente, usa-se "text/html" mas existe também a opção "text/plain". # Exemplos ## Envio de e-mail configurando alguns parâmetros ``` try { var matriculaRemetente = "admin"; var templateCode = "MeuTemplate"; var parametros = new java.util.HashMap(); // Este parâmetro é obrigatório e representa o assunto do e-mail parametros.put("subject", "Consulte nossa documentação"); // Monta mapa com parâmetros do template parametros.put("documentacao", "https://tdn.totvs.com/display/fluig/"); parametros.put("descricao", "Documentação Fluig"); // Monta lista de destinatários var destinatarios = new java.util.ArrayList(); destinatarios.add("matriculaUsuario"); // Matrícula do usuário destinatarios.add("usuario@fluig.com"); // E-mail externo //Envia e-mail notifier.notify(matriculaRemetente, templateCode, parametros, destinatarios, "text/html"); } catch(e) { log.info(e); } ``` ## Envio de e-mail informando um formulário ``` try { var matriculaRemetente = "admin"; var templateCode = "MeuTemplate"; var codigoForm = 85; var parametros = new java.util.HashMap(); parametros.put("subject", "Informações sobre o cadastro"); // Monta lista de destinatários var destinatarios = new java.util.ArrayList(); destinatarios.add("matriculaUsuario"); // Matrícula do usuário //Envia e-mail notifier.notify(matriculaRemetente, codigoForm, templateCode, parametros, destinatarios, "text/html"); } catch(e) { log.info(e); } ``` # Pontos de atenção ## Envio de mensagens para e-mails externos Para que o envio de e-mails externos seja concluído corretamente o servidor SMTP responsável deve estar habilitado para enviar e-mails para fora da intranet do seu servidor. ## Envio de dados de um formulário via solicitação Pode-se usam os eventos de personalização do processo para envio de e-mails. Porém, quando tenta enviar os dados de um formulário na primeira atividade do processo, você deve chamar a notificação no método beforeStateEntry ou afterStateEntry. Caso contrário, com o formulário ainda não foi criado na tabela de dados, esse envio não irá funcionar.