Pages

Friday, August 28, 2009

E-mail sending with authentication

SMTP with authentication

PROCEDURE TEST_MAIL
is
crlf VARCHAR2(2):= UTL_TCP.CRLF;
connection utl_smtp.connection;
mailhost VARCHAR2(30) := 'XX.XX.XX.XX';
header VARCHAR2(1000);
str_user_name VARCHAR2(200);
BEGIN
connection := utl_smtp.open_connection(mailhost,25);
header:= 'Date: 'TO_CHAR(SYSDATE - 19800/86400 ,'dd Mon yyyy hh24:mi:ss')crlf
'From: ''upul@dpmco.com'crlf
'Subject: ''Pending Progress Report(s) Notification - 'initcap(str_user_name)'.'crlf
'To: ''thiranagamage@gmail.com'crlf
'CC: ''upul@dpmco.com'crlf
'CC: ''pradeepi@dpmco.com';
--
-- Handshake with the SMTP server
--
utl_smtp.ehlo(connection, mailhost);
utl_smtp.command( connection, 'AUTH LOGIN');
utl_smtp.command( connection, utl_raw.cast_to_varchar2( utl_encode.base64_encode( utl_raw.cast_to_raw( 'upul@dpmco.com' ))) );
utl_smtp.command( connection, utl_raw.cast_to_varchar2( utl_encode.base64_encode( utl_raw.cast_to_raw( 'XXXX' ))) );


utl_smtp.mail(connection, 'upul@dpmco.com');
utl_smtp.rcpt(connection, 'thiranagamage@gmail.com');
utl_smtp.rcpt(connection, 'upul@dpmco.com');
utl_smtp.rcpt(connection, 'pradeepi@dpmco.com');
utl_smtp.open_data(connection);
--
-- Write the header
--
utl_smtp.write_data(connection, header);
--
-- The crlf is required to distinguish that what comes next is not simply part of the header..
--
utl_smtp.write_data(connection, crlf 'Please do not reply to this message. This is an unmonitored address for outgoing mail notification only.');
utl_smtp.close_data(connection);
utl_smtp.quit(connection);
commit;
END;

No comments:

Post a Comment