Pular para o conteúdo
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #74129
    Anônimo

      Ol? Pessoal,

      ? a primeira vez que estou postando aqui nesse f?rum, e vou direto ao ponto de interesse ( o motivo pelo qual me registrei no grupo )

      Estou h? pouco tempo desenvolvendo algumas rotinas em pl/sql e estou tendo dificuldade de fazer com que esse procedimento funcione corretamente.

      A Id?ia desse procedimento consiste em enviar mensagens cujo o conte?do seja um CLOB, pelo fato de armazenar c?digos HTML e muitas vezes criarem relat?rios mais elaborados.

      todas as vezes que executo esse procedimento ele aparece uma mensagem de erro no package sys.utl_smtp. aos quais n?o tenho como verificar o bloco de c?digo que est? sendo executado ou est? gerando o erro. ( /* Source is wrapped */ ), impedindo que eu possa verificar em qual parte do c?digo eu possa estar cometendo erros.

      a imagem da mensagem de erro ? a seguinte

      e o C?digo do Procedimento ? o seguinte :

      procedure prc_envia_email
      ( p_remetente in varchar2
      , p_destinatario in varchar2
      , p_assunto in varchar2
      , p_mensagem in varchar2
      , p_media_type in varchar2
      ) as

      v_fim number;
      v_count number;
      v_mensagem clob;
      v_temp varchar2( 32767 );
      v_limite varchar2( 32767 );
      v_nome_remetente varchar2( 70 ) := 'Nome do Remetente';;
      v_smtp varchar2( 50 ) := 'smtp.host.com.br';
      v_ctrl varchar2( 2 ) := chr( 10 );

      v_conn utl_smtp.connection;

      begin
      v_conn := utl_smtp.open_connection( v_smtp , 25 );

      utl_smtp.helo( v_conn , v_smtp );
      utl_smtp.mail( v_conn , p_remetente );
      utl_smtp.rcpt( v_conn , p_destinatario );

      -- cabecalho em text/html
      v_temp := v_temp || 'MIME-Version: 1.0' || v_ctrl;
      v_temp := v_temp || 'To: ' || p_destinatario || v_ctrl;
      v_temp := v_temp || 'From: ' || p_remetente || v_ctrl;
      v_temp := v_temp || 'Subject: ' || p_assunto || v_ctrl;
      v_temp := v_temp || 'Reply-To: ' || p_remetente || v_ctrl;
      v_temp := v_temp || 'Content-Type: text/html; boundary=' || chr(34) || v_limite || chr(34) || v_ctrl;

      -- grava cabecalho em text/html
      dbms_lob.createtemporary( v_mensagem, false, 10 );
      dbms_lob.write( v_mensagem , length( v_temp ) , 1 , v_temp );

      -- mensagem em text/html
      v_mensagem := v_mensagem || '' || v_ctrl;
      v_mensagem := v_mensagem || ' ' || v_ctrl;
      v_mensagem := v_mensagem || ' ' || v_ctrl;
      v_mensagem := v_mensagem || ' ' || v_ctrl;
      v_mensagem := v_mensagem || ' ' || v_ctrl;
      v_mensagem := v_mensagem || '' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      -- assinatura text/html
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      -- fim assinatura text/html
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || p_assunto || '

      ' || p_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '


      ' || v_ctrl;
      v_mensagem := v_mensagem || ' ' || v_nome_remetente || '
      ' || v_ctrl;
      v_mensagem := v_mensagem || ' Site do Host

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '

      ' || v_ctrl;
      v_mensagem := v_mensagem || '' || v_ctrl;
      v_mensagem := v_mensagem || '' || v_ctrl;

      -- grava conteudo da mensagem
      v_temp := v_ctrl || v_ctrl || v_limite || v_ctrl;
      v_fim := dbms_lob.getLength( v_mensagem ) + 1;

      dbms_lob.write( v_mensagem , length( v_temp ) , v_fim , v_temp );

      v_fim := 1;
      v_count := 10000;

      utl_smtp.open_data( v_conn );

      while v_fim < dbms_lob.getLength( v_mensagem ) loop utl_smtp.write_data( v_conn, dbms_lob.substr( v_mensagem , v_count , v_fim ) ); v_fim := v_fim + v_count ; v_count := least( 10000 , dbms_lob.getlength( v_mensagem ) - v_count ); end loop; utl_smtp.close_data( v_conn ); utl_smtp.quit( v_conn ); dbms_lob.freetemporary( v_mensagem ); end prc_envia_email;

      Estou usando :

      Sistema Operacional : Slackware 10
      Oracle 10g :

      PS - 1 : No oracle 9I esse mesmo procedimento funcionava perfeitamente. O que me leva a imaginar que possa ser um problema de permiss?o.

      PS - 2 : O sistema operacional antigo era o ( Red Hat )

      PS - 3 : Foi criado um sistema de anti-spam, adicionando autentica??o de SMTP ( que eu tamb?m n?o consegui fazer funcionar nesse mesmo
      procedimento )

      PS - 4 : Outros exemplos de procedimentos de e-mail usando with RAW and VARCHAR2 como tipos de dados continuam funcionando, por?m n?o tem utilidade para os e-mails que tenho que tem um a quantidade de caracteres ( kb ) superior a que o tipo varchar2 possa suportar.

      Obrigado a todos,

      Jefferson Petilo
      Desenvolvedor ColdFusion

      #74833
      Anônimo

        [quote=”Anonymous”:2jnba0pc]Ol? Pessoal,

        ? a primeira vez que estou postando aqui nesse f?rum, e vou direto ao ponto de interesse ( o motivo pelo qual me registrei no grupo )

        Estou h? pouco tempo desenvolvendo algumas rotinas em pl/sql e estou tendo dificuldade de fazer com que esse procedimento funcione corretamente.

        A Id?ia desse procedimento consiste em enviar mensagens cujo o conte?do seja um CLOB, pelo fato de armazenar c?digos HTML e muitas vezes criarem relat?rios mais elaborados.

        todas as vezes que executo esse procedimento ele aparece uma mensagem de erro no package sys.utl_smtp. aos quais n?o tenho como verificar o bloco de c?digo que est? sendo executado ou est? gerando o erro. ( /* Source is wrapped */ ), impedindo que eu possa verificar em qual parte do c?digo eu possa estar cometendo erros.

        a imagem da mensagem de erro ? a seguinte

        e o C?digo do Procedimento ? o seguinte :

        procedure prc_envia_email
        ( p_remetente in varchar2
        , p_destinatario in varchar2
        , p_assunto in varchar2
        , p_mensagem in varchar2
        , p_media_type in varchar2
        ) as

        v_fim number;
        v_count number;
        v_mensagem clob;
        v_temp varchar2( 32767 );
        v_limite varchar2( 32767 );
        v_nome_remetente varchar2( 70 ) := 'Nome do Remetente';;
        v_smtp varchar2( 50 ) := 'smtp.host.com.br';
        v_ctrl varchar2( 2 ) := chr( 10 );

        v_conn utl_smtp.connection;

        begin
        v_conn := utl_smtp.open_connection( v_smtp , 25 );

        utl_smtp.helo( v_conn , v_smtp );
        utl_smtp.mail( v_conn , p_remetente );
        utl_smtp.rcpt( v_conn , p_destinatario );

        -- cabecalho em text/html
        v_temp := v_temp || 'MIME-Version: 1.0' || v_ctrl;
        v_temp := v_temp || 'To: ' || p_destinatario || v_ctrl;
        v_temp := v_temp || 'From: ' || p_remetente || v_ctrl;
        v_temp := v_temp || 'Subject: ' || p_assunto || v_ctrl;
        v_temp := v_temp || 'Reply-To: ' || p_remetente || v_ctrl;
        v_temp := v_temp || 'Content-Type: text/html; boundary=' || chr(34) || v_limite || chr(34) || v_ctrl;

        -- grava cabecalho em text/html
        dbms_lob.createtemporary( v_mensagem, false, 10 );
        dbms_lob.write( v_mensagem , length( v_temp ) , 1 , v_temp );

        -- mensagem em text/html
        v_mensagem := v_mensagem || '' || v_ctrl;
        v_mensagem := v_mensagem || ' ' || v_ctrl;
        v_mensagem := v_mensagem || ' ' || v_ctrl;
        v_mensagem := v_mensagem || ' ' || v_ctrl;
        v_mensagem := v_mensagem || ' ' || v_ctrl;
        v_mensagem := v_mensagem || '' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        -- assinatura text/html
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        -- fim assinatura text/html
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || p_assunto || '

        ' || p_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '


        ' || v_ctrl;
        v_mensagem := v_mensagem || ' ' || v_nome_remetente || '
        ' || v_ctrl;
        v_mensagem := v_mensagem || ' Site do Host

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '

        ' || v_ctrl;
        v_mensagem := v_mensagem || '' || v_ctrl;
        v_mensagem := v_mensagem || '' || v_ctrl;

        -- grava conteudo da mensagem
        v_temp := v_ctrl || v_ctrl || v_limite || v_ctrl;
        v_fim := dbms_lob.getLength( v_mensagem ) + 1;

        dbms_lob.write( v_mensagem , length( v_temp ) , v_fim , v_temp );

        v_fim := 1;
        v_count := 10000;

        utl_smtp.open_data( v_conn );

        while v_fim < dbms_lob.getLength( v_mensagem ) loop
        utl_smtp.write_data( v_conn, dbms_lob.substr( v_mensagem , v_count , v_fim ) );

        v_fim := v_fim + v_count ;
        v_count := least( 10000 , dbms_lob.getlength( v_mensagem ) - v_count );
        end loop;

        utl_smtp.close_data( v_conn );
        utl_smtp.quit( v_conn );

        dbms_lob.freetemporary( v_mensagem );

        end prc_envia_email;

        Estou usando :

        Sistema Operacional : Slackware 10
        Oracle 10g :

        PS – 1 : No oracle 9I esse mesmo procedimento funcionava perfeitamente. O que me leva a imaginar que possa ser um problema de permiss?o.

        PS – 2 : O sistema operacional antigo era o ( Red Hat )

        PS – 3 : Foi criado um sistema de anti-spam, adicionando autentica??o de SMTP ( que eu tamb?m n?o consegui fazer funcionar nesse mesmo
        procedimento )

        PS – 4 : Outros exemplos de procedimentos de e-mail usando with RAW and VARCHAR2 como tipos de dados continuam funcionando, por?m n?o tem utilidade para os e-mails que tenho que tem um a quantidade de caracteres ( kb ) superior a que o tipo varchar2 possa suportar.

        Obrigado a todos,

        Jefferson Petilo
        Desenvolvedor ColdFusion[/quote]

        #75814
        Anônimo

          [quote=”Anonymous”:34vg0phj]Olá Pessoal,

          É a primeira vez que estou postando aqui nesse fórum, e vou direto ao ponto de interesse ( o motivo pelo qual me registrei no grupo )

          Estou há pouco tempo desenvolvendo algumas rotinas em pl/sql e estou tendo dificuldade de fazer com que esse procedimento funcione corretamente.

          A Idéia desse procedimento consiste em enviar mensagens cujo o conteúdo seja um CLOB, pelo fato de armazenar códigos HTML e muitas vezes criarem relatórios mais elaborados.

          todas as vezes que executo esse procedimento ele aparece uma mensagem de erro no package sys.utl_smtp. aos quais não tenho como verificar o bloco de código que está sendo executado ou está gerando o erro. ( /* Source is wrapped */ ), impedindo que eu possa verificar em qual parte do código eu possa estar cometendo erros.

          a imagem da mensagem de erro é a seguinte

          e o Código do Procedimento é o seguinte :

          procedure prc_envia_email
          ( p_remetente in varchar2
          , p_destinatario in varchar2
          , p_assunto in varchar2
          , p_mensagem in varchar2
          , p_media_type in varchar2
          ) as

          v_fim number;
          v_count number;
          v_mensagem clob;
          v_temp varchar2( 32767 );
          v_limite varchar2( 32767 );
          v_nome_remetente varchar2( 70 ) := 'Nome do Remetente';;
          v_smtp varchar2( 50 ) := 'smtp.host.com.br';
          v_ctrl varchar2( 2 ) := chr( 10 );

          v_conn utl_smtp.connection;

          begin
          v_conn := utl_smtp.open_connection( v_smtp , 25 );

          utl_smtp.helo( v_conn , v_smtp );
          utl_smtp.mail( v_conn , p_remetente );
          utl_smtp.rcpt( v_conn , p_destinatario );

          -- cabecalho em text/html
          v_temp := v_temp || 'MIME-Version: 1.0' || v_ctrl;
          v_temp := v_temp || 'To: ' || p_destinatario || v_ctrl;
          v_temp := v_temp || 'From: ' || p_remetente || v_ctrl;
          v_temp := v_temp || 'Subject: ' || p_assunto || v_ctrl;
          v_temp := v_temp || 'Reply-To: ' || p_remetente || v_ctrl;
          v_temp := v_temp || 'Content-Type: text/html; boundary=' || chr(34) || v_limite || chr(34) || v_ctrl;

          -- grava cabecalho em text/html
          dbms_lob.createtemporary( v_mensagem, false, 10 );
          dbms_lob.write( v_mensagem , length( v_temp ) , 1 , v_temp );

          -- mensagem em text/html
          v_mensagem := v_mensagem || '' || v_ctrl;
          v_mensagem := v_mensagem || ' ' || v_ctrl;
          v_mensagem := v_mensagem || ' ' || v_ctrl;
          v_mensagem := v_mensagem || ' ' || v_ctrl;
          v_mensagem := v_mensagem || ' ' || v_ctrl;
          v_mensagem := v_mensagem || '' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          -- assinatura text/html
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          -- fim assinatura text/html
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || p_assunto || '

          ' || p_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '


          ' || v_ctrl;
          v_mensagem := v_mensagem || ' ' || v_nome_remetente || '
          ' || v_ctrl;
          v_mensagem := v_mensagem || ' Site do Host

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '

          ' || v_ctrl;
          v_mensagem := v_mensagem || '' || v_ctrl;
          v_mensagem := v_mensagem || '' || v_ctrl;

          -- grava conteudo da mensagem
          v_temp := v_ctrl || v_ctrl || v_limite || v_ctrl;
          v_fim := dbms_lob.getLength( v_mensagem ) + 1;

          dbms_lob.write( v_mensagem , length( v_temp ) , v_fim , v_temp );

          while v_fim < dbms_lob.getLength( v_mensagem ) loop
          utl_smtp.write_data( v_conn, dbms_lob.substr( v_mensagem , v_count , v_fim ) );

          v_fim := v_fim + v_count ;
          v_count := least( 10000 , dbms_lob.getlength( v_mensagem ) - v_count );
          end loop;

          utl_smtp.close_data( v_conn );
          utl_smtp.quit( v_conn );

          dbms_lob.freetemporary( v_mensagem );

          end prc_envia_email;

          Estou usando :

          Sistema Operacional : Slackware 10
          Oracle 10g :

          PS – 1 : No oracle 9I esse mesmo procedimento funcionava perfeitamente. O que me leva a imaginar que possa ser um problema de permissão.

          PS – 2 : O sistema operacional antigo era o ( Red Hat )

          PS – 3 : Foi criado um sistema de anti-spam, adicionando autenticação de SMTP ( que eu também não consegui fazer funcionar nesse mesmo
          procedimento )

          PS – 4 : Outros exemplos de procedimentos de e-mail usando with RAW and VARCHAR2 como tipos de dados continuam funcionando, porém não tem utilidade para os e-mails que tenho que tem um a quantidade de caracteres ( kb ) superior a que o tipo varchar2 possa suportar.

          Obrigado a todos,

          Jefferson Petilo
          Desenvolvedor ColdFusion[/quote]

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.
        plugins premium WordPress