1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
PROCEDURE Sending_Mail
(
p_email in varchar2,
p_subject in varchar2,
p_body in varchar2,
p_sender in varchar2 default null
)
IS
PROCEDURE send_header
(
name IN VARCHAR2,
header IN VARCHAR2
)
AS
BEGIN
utl_smtp.write_data(v_conn, name || ': ' || header || utl_tcp.crlf);
END;
BEGIN
dbms_session.set_nls('NLS_LANGUAGE','FRENCH');
v_conn := utl_smtp.open_connection(v_srchost,25);
utl_smtp.helo(v_conn, v_srcdomain);
utl_smtp.mail(v_conn, v_srcname||'@'||v_srcdomain);
utl_smtp.rcpt(v_conn, p_email);
IF p_sender IS NOT NULL
THEN
utl_smtp.rcpt(v_conn, p_sender); -- les copies
END IF;
utl_smtp.open_data(v_conn);
send_header('From', '"Eurtransbel Application" <'||v_srcname||'@'||v_srcdomain||'>');
send_header('To', '"'||p_email||'" <'||p_email||'>');
IF p_sender IS NOT NULL
THEN
send_header('Cc', '"'||p_sender||'" <'||p_sender||'>');
END IF;
send_header('Subject', p_subject);
utl_smtp.write_data(v_conn, utl_tcp.CRLF || p_body);
utl_smtp.close_data(v_conn);
utl_smtp.quit(v_conn);
EXCEPTION
WHEN utl_smtp.transient_error OR utl_smtp.permanent_error
THEN
utl_smtp.quit(v_conn);
raise_application_error(-20000,
'Failed to send mail due to the following error: ' || sqlerrm);
END Sending_Mail; |
Partager