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

      Utilizo a UTL_SMTP para o envio de emails.
      Mas n?o encontrei nenhuma forma de enviar anexos.
      Algu?m sabe como fazer, ou alguma dica?

      #74298
      Anônimo

        Achei este exemplo na lista de discuss?o do gpo, ele foi feito pelo Leandro Cursino.
        Espero que ajude.

        create or replace procedure mail_files ( from_name varchar2,
        to_name varchar2,
        subject varchar2,
        message varchar2,
        filename1 varchar2 default null, max_size number default 9999999999)
        is
        v_smtp_server varchar2(100) := ‘gmsmtp02.oraclecorp.com’; — Change it to your
        mailing server.
        v_smtp_server_port number := 25;
        v_directory_name varchar2(100);
        v_file_name varchar2(100);
        v_line varchar2(1000);
        crlf varchar2(2):= chr(13) || chr(10);
        mesg varchar2(32767);
        conn UTL_SMTP.CONNECTION;
        v_slash_pos number;
        v_file_handle utl_file.file_type;
        invalid_path exception;
        mesg_length_exceeded boolean := false;
        begin
        conn:= utl_smtp.open_connection( v_smtp_server, v_smtp_server_port );
        utl_smtp.helo( conn, v_smtp_server );
        utl_smtp.mail( conn, from_name );
        utl_smtp.rcpt( conn, to_name );
        utl_smtp.open_data ( conn );
        mesg:= ‘Date: ‘ || TO_CHAR( SYSDATE, ‘dd Mon yy hh24:mi:ss’ ) || crlf ||
        ‘From: ‘ || from_name || crlf ||
        ‘Subject: ‘ || subject || crlf ||
        ‘To: ‘ || to_name || crlf ||
        ‘Mime-Version: 1.0’ || crlf ||
        ‘Content-Type: multipart/mixed; boundary=”DMW.Boundary.605592468″‘ || crlf ||
        ” || crlf ||
        ‘–DMW.Boundary.605592468’ || crlf ||
        ‘Content-Type: text/plain; name=”message.txt”; charset=US-ASCII’ || crlf ||
        ‘Content-Disposition: inline; filename=”message.txt”‘ || crlf ||
        ‘Content-Transfer-Encoding: 7bit’ || crlf ||
        ” || crlf ||
        message || crlf ;
        utl_smtp.write_data ( conn, mesg );
        if filename1 is not null then
        begin
        v_slash_pos := instr(filename1, ‘/’, -1 );
        if v_slash_pos = 0 then
        v_slash_pos := instr(filename1, ”, -1 );
        end if;
        v_directory_name := substr(filename1, 1, v_slash_pos – 1 );
        v_file_name := substr(filename1, v_slash_pos + 1 );
        v_file_handle := utl_file.fopen(v_directory_name, v_file_name, ‘r’ );
        — generate the MIME boundary line …
        mesg := crlf || ‘–DMW.Boundary.605592468’ || crlf ||
        ‘Content-Type: application/octet-stream; name=”‘ || v_file_name || ‘”‘ || crlf
        ||
        ‘Content-Disposition: attachment; filename=”‘ || v_file_name || ‘”‘ || crlf ||
        ‘Content-Transfer-Encoding: 7bit’ || crlf || crlf ;
        utl_smtp.write_data ( conn, mesg );
        loop
        utl_file.get_line(v_file_handle, v_line);
        mesg := v_line || crlf;
        utl_smtp.write_data ( conn, mesg );
        end loop;
        exception
        when utl_file.invalid_path then
        dbms_output.put_line(‘Error in opening attachment ‘||filename1 );
        when others then
        null;
        end;
        end if;
        mesg := crlf || ‘–DMW.Boundary.605592468–‘ || crlf;
        utl_smtp.close_data( conn );
        utl_smtp.quit( conn );
        end;

        #75423
        Anônimo

          [quote=”Cjunior”:3kod0qnv]Utilizo a UTL_SMTP para o envio de emails.
          Mas não encontrei nenhuma forma de enviar anexos.
          Alguém sabe como fazer, ou alguma dica?[/quote]

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