create or replace type vc_tab as table of varchar2(4000);
/
procedure send_maile(
sender in varchar2,
sender_name in varchar2,
subject in varchar2,
recipient in varchar2_tab,
text in varchar2_tab
)
is
connection utl_smtp.connection;
mailserver varchar2(50) := 'mailserver.somewhere.tld';
crlf constant varchar2(2) := chr(13)||chr(10);
begin
connection := utl_smtp.open_connection(mailserver, 25);
utl_smtp.helo(connection, mailserver);
utl_smtp.mail(connection, sender);
for i in 1 .. recipient.count loop
utl_smtp.rcpt(connection,recipient(i));
end loop;
utl_smtp.open_data(connection);
utl_smtp.write_data(connection, 'From: "' || sender_name || '" <' || sender || '>' || crlf);
for i in 1 .. recipient.count loop
utl_smtp.write_data(connection, 'To: "' || recipient(i) || '" <' || recipient(i) || '>' || crlf);
end loop;
utl_smtp.write_data(connection, 'Subject: ' || subject || crlf);
utl_smtp.write_data(connection,crlf);
for i in 1 .. text.count loop
utl_smtp.write_data(connection,text(i) || crlf);
end loop;
utl_smtp.close_data(connection);
utl_smtp.quit(connection);
end send_maile;