- Este tópico contém 2 respostas, 1 voz e foi atualizado pela última vez 18 anos, 10 meses atrás por Anônimo.
-
AutorPosts
-
15 de fevereiro de 2005 às 11:26 pm #74286Anô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?22 de fevereiro de 2005 às 8:28 pm #74298AnônimoAchei 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;14 de março de 2006 às 9:23 pm #75423Anô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] -
AutorPosts
- Você deve fazer login para responder a este tópico.