Send an email (with attachement) using Oracle PL/SQL

create or replace procedure SEND_EMAIL_WITH_TXT_ATTACH (
PVA_SENDER varchar2,
PVA_RECEIVER varchar2,
PVA_SUBJECT varchar2,
PVA_MESSAGE varchar2,
PVA_TEXT_FILE varchar2,
PVA_DIRECTORY varchar2 /* Database Object */ ) is

vfi_fileHandle utl_file.file_type;
vnu_file_len NUMBER;
vnu_file_blk_size NUMBER;
vbo_file_exists BOOLEAN;
vva_textLine VARCHAR2 (32000);
vva_file_text_toSend varchar2(32000);
vva_debug_ind varchar2(3);

begin

UTL_FILE.fgetattr (PVA_DIRECTORY, PVA_TEXT_FILE, vbo_file_exists, vnu_file_len, vnu_file_blk_size);

if vbo_file_exists then
vfi_fileHandle := UTL_FILE.fopen (PVA_DIRECTORY, PVA_TEXT_FILE, ‘R’);
end if;

LOOP
BEGIN
UTL_FILE.get_line (vfi_fileHandle, vva_textLine);
vva_file_text_toSend := vva_file_text_toSend || vva_textLine || UTL_TCP.crlf;
EXCEPTION
WHEN NO_DATA_FOUND THEN
EXIT;
END;
END LOOP;

UTL_FILE.fclose (vfi_fileHandle);

UTL_MAIL.SEND_ATTACH_VARCHAR2
(sender => PVA_SENDER,
recipients => PVA_RECEIVER,
subject => PVA_SUBJECT,
message => PVA_MESSAGE,
att_inline => false,
att_mime_type => ‘text/plain; charset=us-ascii’,
attachment => vva_file_text_toSend,
att_filename => PVA_TEXT_FILE ); –attached filename

UTL_FILE.fclose (vfi_fileHandle);

exception
when others then
raise;

end;

Recent Posts

Start typing and press Enter to search