Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Encoding attached file using UTL_SMTP.

user12152340Oct 13 2011 — edited Oct 13 2011
Hi Group,

I have been asked to use UTL_SMTP to send a plain file in a oracle database version 9i over Windows, I receive the attached file on my mail, but the problem is that when we open the file, the text shows junk chars, or only numbers...

What parameter controls encoding the text or what I am doing wrong.

Thanks in advance.
declare
  l_maicon utl_smtp.connection;
  l_boundary    VARCHAR2(50) := '----=*#abc1234321cba#*=';
---
  v_archivo bfile:=NULL;
  v_texto varchar(4000);
  v_adjunto raw(32767);
begin
  l_maicon :=utl_smtp.open_connection('mail.anyuser.com');
  utl_smtp.helo(l_maicon,'hostname');
  utl_smtp.mail(l_maicon,'NotificadorOracle@anyuser.com');
  utl_smtp.rcpt(l_maicon,'dbamail@anydomain.com');

  UTL_SMTP.open_data(l_maicon);
  
  UTL_SMTP.write_data(l_maicon, 'Date: ' || TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS') || UTL_TCP.crlf);
  UTL_SMTP.write_data(l_maicon, 'To: ' || 'anyusermail@anydomain.com' || UTL_TCP.crlf);
  UTL_SMTP.write_data(l_maicon, 'From: ' || 'NotificadorOracle@anydoming.com' || UTL_TCP.crlf);
  UTL_SMTP.write_data(l_maicon, 'Subject: ' || 'test email oracle 9i con anexado'|| UTL_TCP.crlf);
--  UTL_SMTP.write_data(l_maicon, 'Reply-To: ' || p_from || UTL_TCP.crlf);
  UTL_SMTP.write_data(l_maicon, 'MIME-Version: 1.0' || UTL_TCP.crlf);
  UTL_SMTP.write_data(l_maicon, 'Content-Type: multipart/mixed; boundary="' || l_boundary || '"' || UTL_TCP.crlf || UTL_TCP.crlf);
  
  UTL_SMTP.write_data(l_maicon, '--' || l_boundary || UTL_TCP.crlf);
  UTL_SMTP.write_data(l_maicon, 'Content-Type: text/plain; charset="iso-8859-1"' || UTL_TCP.crlf || UTL_TCP.crlf);

  UTL_SMTP.write_data(l_maicon, 'test de email oracle 9i, pf no tomar en cuenta');
  UTL_SMTP.write_data(l_maicon, UTL_TCP.crlf || UTL_TCP.crlf);


  UTL_SMTP.write_data(l_maicon, '--' || l_boundary || UTL_TCP.crlf);
  UTL_SMTP.write_data(l_maicon, 'Content-Type: ' || 'text/plain; charset="iso-8859-1"' || '; name="' || 'switch.sql' || '"' || UTL_TCP.crlf);
  UTL_SMTP.write_data(l_maicon, 'Content-Transfer-Encoding: base64' || UTL_TCP.crlf);
  UTL_SMTP.write_data(l_maicon, 'Content-Disposition: attachment; filename="' || 'switch.sql' || '"' || UTL_TCP.crlf || UTL_TCP.crlf);

  v_archivo:=bfilename('BDUMP', 'switch.sql');
  dbms_lob.fileopen(v_archivo, dbms_lob.file_readonly);
  v_adjunto:=dbms_lob.substr(v_archivo);
--  v_texto:=dbms_lob.substr(v_archivo);
  dbms_lob.close(v_archivo);

  UTL_SMTP.write_data(l_maicon, v_adjunto);

  UTL_SMTP.write_data(l_maicon, UTL_TCP.crlf || UTL_TCP.crlf);
  
  UTL_SMTP.write_data(l_maicon, '--' || l_boundary || '--' || UTL_TCP.crlf);
  UTL_SMTP.close_data(l_maicon);

  utl_smtp.quit(l_maicon);
end;
/
This post has been answered by AlexeyDev on Oct 13 2011
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 10 2011
Added on Oct 13 2011
2 comments
526 views