DECLARE
v_from_name VARCHAR2(100) := 'admin@falickfaisal.com';
v_to_name VARCHAR2(100) := 'falickfaisal@gmail.com';
v_subject VARCHAR2(100) := 'This is an awesome mail';
v_message_body VARCHAR2(100) := 'Hey you!! Bla Bla Bluu';
v_message_type VARCHAR2(100) := 'text/plain';
v_smtp_server VARCHAR2(200) := 'smtpout.asia.secureserver.net';
n_smtp_server_port NUMBER := 25;
conn utl_smtp.connection;
TYPE attach_info IS RECORD (
attach_name VARCHAR2(40),
data_type VARCHAR2(40) DEFAULT 'text/plain',
attach_content CLOB DEFAULT ''
);
TYPE array_attachments IS TABLE OF attach_info;
attachments array_attachments := array_attachments();
n_offset NUMBER;
n_amount NUMBER := 1900;
v_crlf VARCHAR2(5) := CHR(13) || CHR(10);
base64username VARCHAR2(40) := UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw('admin@falickfaisal.com')));
base64password VARCHAR2(40):= UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw('123456789')));
BEGIN
-- Fill data for example
attachments.extend(5);
FOR i IN 1..5
LOOP
SELECT 'test' || to_char(i) || '.txt','text/plain','test' || to_char(i)
INTO attachments(i)
FROM dual;
END LOOP;
-- Open the SMTP connection ...
conn := utl_smtp.open_connection(v_smtp_server,n_smtp_server_port);
utl_smtp.helo(conn, v_smtp_server);
UTL_SMTP.command(conn, 'AUTH', 'LOGIN');
UTL_SMTP.command(conn, base64username );
UTL_SMTP.command(conn, base64password );
utl_smtp.mail(conn, v_from_name);
utl_smtp.rcpt(conn, v_to_name);
-- Open data
utl_smtp.open_data(conn);
-- Message info
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('To: ' || v_to_name || v_crlf));
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('Date: ' || to_char(sysdate, 'Dy, DD Mon YYYY hh24:mi:ss') || v_crlf));
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('From: ' || v_from_name || v_crlf));
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('Subject: ' || v_subject || v_crlf));
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('MIME-Version: 1.0' || v_crlf));
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('Content-Type: multipart/mixed; boundary="SECBOUND"' || v_crlf || v_crlf));
-- Message body
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('--SECBOUND' || v_crlf));
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('Content-Type: ' || v_message_type || v_crlf || v_crlf));
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw(v_message_body || v_crlf));
-- Attachment Part
FOR i IN attachments.FIRST .. attachments.LAST
LOOP
-- Attach info
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('--SECBOUND' || v_crlf));
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('Content-Type: ' || attachments(i).data_type
|| ' name="'|| attachments(i).attach_name || '"' || v_crlf));
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('Content-Disposition: attachment; filename="'
|| attachments(i).attach_name || '"' || v_crlf || v_crlf));
-- Attach body
n_offset := 1;
WHILE n_offset < dbms_lob.getlength(attachments(i).attach_content)
LOOP
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw(dbms_lob.substr(attachments(i).attach_content, n_amount, n_offset)));
n_offset := n_offset + n_amount;
END LOOP;
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('' || v_crlf));
END LOOP;
-- Last boundry
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw('--SECBOUND--' || v_crlf));
-- Close data
utl_smtp.close_data(conn);
utl_smtp.quit(conn);
END;
Oracle Tutorial, We have covered all Oracle articles which includes Oracle Database, Application, Framework, Oracle HRM, ADF Training and Financial Training. Further more we have queries and scripts for Oracle EBS Modules.
Subscribe to:
Post Comments (Atom)
How To: Remove all rows from view object (VO) in OAF & ADF
This is the basic requirement when we are working with oracle OAF. In which we need to removed the all rows from the table. The best use ca...
-
Create Type Loop_Type is table of Varchar2(400) Create or Replace Function Find_Loop_F (P_End_loop in NUmber Default 10) Return Loop_Typ...
-
Run JavaScript Method in Java / ADF & OAF ** it is not Oracle standard. Example Code : try { ScriptEngineManager manager ...
-
The exact lines of Developers’ guide for use JavaScript are as follows: “UIX and the OA Framework are rapidly adding new features to provide...
No comments:
Post a Comment