UniDANFE/Integrando o UniDANFE ao ERP/EnviarOutrosEmails
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> <ComprovanteTEF1>c:\pasta\boleto1.pdf</ComprovanteTEF1> <Prioridade>3</Prioridade> <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>.
- Prioridade: TAG opcional. Indica a prioridade do e-mail. Válidos os valores 1 (alta), 3 (normal) e 5 (baixa).
- ClienteEmailExterno: TAG opcional. Indica se será utilizado um cliente de e-mail externo para o envio do e-mail. Valores válidos: 0 (não) e 1 (sim).
- 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:
dfeInit("emailExt"); 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("ComprovanteTEF1", "c:\pasta\boleto1.pdf"); dfeSetParametro("Prioridade", "3"); 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"); // observe que não precisa informar a TAG <conta> para usar o recurso de cadastramento automático da conta. // Preencher essas tags apenas se você quer que a conta de e-mail seja cadastrada automaticamente do UniDANFE. Caso ela já esteja cadastrada, não precisa informar as tags abaixo. 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"); dfeExecuta(); IF dfeGetErro() = "" MESSAGE("O email foi enviado ao UniDANFE com sucesso!"); ELSE MESSAGE(dfeGetErro()); END dfeKill();