Jump to content

dev botao

  • Este tópico foi criado há 2813 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Posted

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

Posted

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

  • Solution
Posted

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

×
×
  • 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.

The popup will be closed in 10 seconds...