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)
OADBTransactionImpl in Oracle Application Framework (OAF)
OADBTransactionImpl is a class in Oracle Application Framework (OAF), which is a framework for building Oracle E-Business Suite applications...
-
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...
-
//import oracle.cabo.ui.validate.Formatter; important Class for Formatting // Set Number fields Format public void se...
-
FND_PROFILE values: fnd_profile.value('PROFILEOPTION'); fnd_profile.value'MFG_ORGANIZATION_ID'); fnd_profile.value(...
No comments:
Post a Comment