Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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

Postado

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
Postado

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

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.