Jump to content

click.png

click.png

click.png

click.png

click.png

click.png

click.png click.png click.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

click.png

click.png

click.png

Enviar pdf da nfe por email


Go to solution Solved by Rogerio Luna Furlan,
  • Este tópico foi criado há 1548 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui

Recommended Posts

Bom dia

Estou tentando enviar uma nfe por email. Até ai tudo bem pego o xml da nfe e ele envia só que gostaria de enviar o pdf no mesmo email, só que ao executar o comando 

NFE.EnviarEmail(email,caminho xml da nfe com seu nome, 1 )

ele não gera o PDF e não anexa o mesmo no email, mandando somente o xml.

Mesmo que eu mande o comando abaixo, ocorre o mesmo problema.

NFE.EnviarEmail(email,caminhoxml, '1' )

Utilizo java web e acbrmonitor po tcp/ip.

Desde já agradeço a atenção

Link to comment
Share on other sites

Bom dia

Segue código.


caminhoXML = "C:\ACBrMonitorPLUS\Arqs\49059272000156\NFe\201705\NFe\35170549059272000156550010000109971000000351-nfe.xml"
comando = "NFE.EnviarEmail([email protected]," + caminhoXML + ", 1 )";
retorno = enviaComandoNfe(comando);

//função para enviar o comando 

 private String enviaComandoNfe(String comando) {
        char c;

        logger("Iniciando a conexão com o ACBrMonitorPLUS...");

        StringBuilder saida = new StringBuilder();

        try {
            int port = 3434;
            InetAddress inetAddress = InetAddress.getLocalHost();
            InetSocketAddress inetSocketAddress = new InetSocketAddress(inetAddress, port);
            SocketChannel socketChannelClient = SocketChannel.open(inetSocketAddress);
            socketChannelClient.configureBlocking(false);

            try {
                logger(String.format("Tentando conectar em %s:%d...", inetSocketAddress.getHostName(), inetSocketAddress.getPort()));

                Thread.sleep(100);

                // Lendo mensagem de boas vindas do ACBrMonitor
                ByteBuffer buffer_out = ByteBuffer.allocate(1024);
                int idx = socketChannelClient.read(buffer_out);
                while (idx > 0 && socketChannelClient.isConnected()) {
                    buffer_out.flip();
                    while (buffer_out.hasRemaining()) {
                        System.out.print((char) buffer_out.get());
                    }
                    buffer_out.clear();
                    idx = socketChannelClient.read(buffer_out);
                }

                if (!comando.trim().isEmpty()) {
                    ByteBuffer buffer = ByteBuffer.allocate(BUFFER_SIZE);
                    buffer.put(comando.getBytes());
                    buffer.put(END_COMMAND.getBytes());
                    buffer.flip();
                    socketChannelClient.write(buffer);
                    logger(String.format("\n=> Enviando comando: \"%s\"", comando));

                    Thread.sleep(100);
                    logger("\nResposta do ACBrMonitorPLUS:");
                    buffer_out = ByteBuffer.allocate(1024);
                    c = 0;

                    while (c != ETX) {
                        idx = socketChannelClient.read(buffer_out);
                        while (idx > 0 && socketChannelClient.isConnected()) {
                            buffer_out.flip();
                            while (buffer_out.hasRemaining()) {
                                c = (char) buffer_out.get();
                                //System.out.print(c);
                                saida.append(c);
                            }
                            buffer_out.clear();
                            idx = socketChannelClient.read(buffer_out);
                        }
                    }
                }

            } catch (Exception e) {
                logger(e.getMessage());
                e.printStackTrace();
            } finally {
                logger("\nFechando a conexão...");
                socketChannelClient.close();


            }
        } catch (Exception e) {
            logger(e.getMessage());
            e.printStackTrace();
        }
        return saida.toString();
    }

com esse Código ele envia o e-mail com o XML em anexo, mas não gera o PDF e também não envia ele como anexo.

desde já agradeço

Link to comment
Share on other sites

  • Consultores

faz um teste mas o que eu sei é que todos os dados deve de estar entre aspas duplas.

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to comment
Share on other sites

  • Solution

Bom dia Juliomar.

Realmente era isso, faltavam as aspas no comando.

Em java ficaria assim:

comando = "NFE.EnviarEmail(\"[email protected]\",\"" + caminhoXML + "\",\"1\")";
retorno = enviaComandoNfe(comando);

onde as barras antes das aspas são para colocar aspas dentro de uma string em java.

Obrigado pela atenção e pela ajuda

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.