UniDANFE/Integrando o UniDANFE ao ERP/EnviarOutrosEmails

De unimake
Ir para: navegação, pesquisa

Enviar e-mails de outras aplicações com o UniDANFE

É possível usar o UniDANFE para enviar e-mails de outras aplicações, como por exemplo, enviar boletos de cobranças e outras mensagens geradas pelo ERP.

Para isso, basta gerar um XML com a estrutura abaixo, e salvá-lo na pasta “Email\Enviar”, que fica dentro da pasta onde o UniDANFE está instalado (ex: c:\unimake\uninfe\email\enviar\boletos-fat-1234.xml”), com qualquer nome único.

Após gerar o arquivo de e-mail, o UniDANFE tentará enviá-lo automaticamente na próxima vez em que um e-mail normal dele for gerado.

Para forçar o envio imediatamente, após gerar o arquivo execute o UniDANFE para fazer isso. Ex: UniDANFE.exe envia_email=1

Estrutura do arquivo XML com o conteúdo do e-mail a ser enviado pelo UniDANFE:

<?xml version="1.0" encoding="UTF-8" ?>
<emailExt>
   <EmailRemetente>[email protected]</EmailRemetente>
   <NomeRemetente>Meu Nome Ltda</NomeRemetente>
   <Data>2015-12-25</Data>
   <Destinatarios>[email protected]</Destinatarios>
   <CC>[email protected];[email protected]</CC>
   <BCC>[email protected];[email protected];[email protected]</BCC>
   <ReplyTo>[email protected]</ReplyTo>
   <Assunto>Boletos para pagamento</Assunto>
   <Anexo1>c:\pasta\boleto1.pdf</Anexo1>
   <Anexo2>c:\outrapasta\novoarquivo.xml</Anexo2>
   ...
   <Anexo9>c:\pastaxx\teste\docto.docx</Anexo9>
   <Texto>Bem vindo ao uso de e-mail externo para o UniDANFE.;;Esse é um exemplo de texto para o corpo do e-mail.;Use o ponto-e-vírgula para quebrar linhas.;;att,;Minha empresa</Texto>
   <conta>
      <smtpServidor>smtp.gmail.com</smtpServidor>
      <smtpPorta>587</smtpPorta>
      <smtpConta>[email protected]</smtpConta>
      <smtpAutenticar>1</smtpAutenticar>
      <smtpSSL>0</smtpSSL>
      <smtpTLS>1</smtpTLS>
      <smtpSenha>@MudeJa</smtpSenha>
      <smtpHelo></smtpHelo>
      <smtpFormatoRemetente>0</smtpFormatoRemetente>
   </conta>
</emailExt>

Notas

  • TAGs obrigatórias: Destinatários, Assunto e Texto.
  • EmailRemetente: TAG opcional. Se existir, será utilizado esse remetente – que já deve estar previamente cadastrado no UniDANFE – para enviar o e-mail. Se essa TAG não for informada, ou se o e-mail informado não estiver cadastrado no UniDANFE, o remetente padrão cadastrado será utilizado para o envio.
  • Data: TAG opcional. Se não informada, a data atual será utilizada.
  • Anexo1 a Anexo9: arquivos que devem ser anexados ao e-mail. Devem ser informados os arquivos na sua pasta original, com o caminho completo. Eles não serão excluídos após importados pelo UniDANFE. A sequência deve ser informada sem “furos”. Por exemplo, se for definido <Anexo1> e <Anexo3>, apenas o <Anexo1> será utilizado, pois há um “furo” em <Anexo2>.
  • Texto: - Texto do corpo do e-mail. Pode ser um texto plano ou um conteúdo HTML.
  • Para o funcionamento desse recurso é necessário que a conta de e-mail do Remetente esteja devidamente cadastrada e configurada no UniDANFE, ou incluir no XML as TAGs do grupo <conta> para que o UniDANFE faça a manutenção da conta automaticamente.

Cadastro automático da conta de e-mail

Para que o UniDANFE faça o cadastro e a manutenção dos dados da conta automaticamente basta informar as TAGs do grupo <conta>. Observe que, nesse caso, outras TAGs passam a ser obrigatórias no XML.

  • TAGs obrigatórias: EmailRemetente, Destinatários, Assunto, Texto, smtpServidor, smtpPorta.

Conteúdo das TAGS:

  • smtpAutenticar: 1=o servidor requer autenticação (default); 0=não
  • smtpSSL: 1=autenticar usando SSL; 0=não (default)
  • smtpTLS: 1=autenticar usando TLS; 0=não (default)
  • smtpFormatoRemetente: [email protected] (default); 1=nome <[email protected]>

Como enviar outros emails usando a UNIDANFE_DFE.DLL

Caso seu sistema esteja integrado ao UniDANFE pela UNIDANFE_DFE.DLL, você pode enviar os e-mails de aplicações externas para o UniDANFE sem precisar gerar o XML acima. Basta, nesse caso, passar tudo por parâmetros. Os nomes dos parâmetros são idênticos aos nomes das TAGS do XML. Abaixo, o mesmo exemplo utilizando a UNIDANFE_DFE.DLL:

   // inicializa a classe
   dfeInit("emailExt");

   // passa todos os parâmetro. A lista de parâmetros obrigatórios é a mesma da lista de Tags obrigatórias. Olhe a documentação acima para saber qual é.
   dfeSetParametro("EmailRemetente", "[email protected]");                   // "remetente" também funciona
   dfeSetParametro("NomeRemetente", "Meu Nome Ltda");
   dfeSetParametro("Data", "2015-12-25");
   dfeSetParametro("Destinatarios", "[email protected]");                   // "email" também funciona
   dfeSetParametro("CC", "[email protected];[email protected]");                // "emailcc" também funciona
   dfeSetParametro("BCC", "[email protected];[email protected];[email protected]");  // "emailcco" também funciona
   dfeSetParametro("ReplyTo", "[email protected]");
   dfeSetParametro("Assunto", "Boletos para pagamento");
   dfeSetParametro("Anexo1", "c:\pasta\boleto1.pdf");
   dfeSetParametro("Anexo2", "c:\outrapasta\novoarquivo.xml");
   ...
   dfeSetParametro("Anexo9", "c:\pastaxx\teste\docto.docx");
   dfeSetParametro("Texto", "Bem vindo ao uso de e-mail externo para o UniDANFE.;;Esse é um exemplo de texto para o corpo do e-mail.;Use o ponto-e-vírgula para quebrar linhas.;;att,;Minha empresa");

   // Preencher essas tags abaixo apenas se você quer que a conta de e-mail seja cadastrada automaticamente do UniDANFE. Caso ela já esteja cadastrada, não precisa informá-las.
   dfeSetParametro("smtpServidor", "smtp.gmail.com");
   dfeSetParametro("smtpPorta", "587");
   dfeSetParametro("smtpConta", "[email protected]");
   dfeSetParametro("smtpAutenticar", "1");
   dfeSetParametro("smtpSSL", "0");
   dfeSetParametro("smtpTLS", "1");
   dfeSetParametro("smtpSenha", "@MudeJa");
   dfeSetParametro("smtpHelo", "");
   dfeSetParametro("smtpFormatoRemetente", "0");

   // executa 
   dfeExecuta();

   // verificar se deu algum erro
   IF dfeGetErro() = ""
      MESSAGE("O email foi enviado ao UniDANFE com sucesso!");
   ELSE 
      MESSAGE(dfeGetErro());
   END 

   // encerra a classe
   dfeKill();

Links úteis