| PL/SQL Email Client | |||||
SUMMARY: FIELD | TYPE | METHOD | DETAIL: FIELD | TYPE | METHOD |
mail_client.connect_server(   p_hostname => 'mailserver.mydomain.com',   p_port => 143,   p_protocol => mail_client.protocol_imap,   p_userid => 'user.name@mailserver.com',   p_passwd => '***',   p_ssl => false );After that the folder has to be opened ...
mail_client.open_inbox;... now we can list the messages ...
select * from table(mail_client.get_mail_headers())... read a message ...
select mail_client.get_message(1).get_content_clob() from dual... "multipart" messages have a complex structure ...
select * from table(mail_client.get_message(1).get_structure())... we can mark a message as "deleted"
declare v_msg mail_t; begin v_msg := mail_client.get_message(1); v_msg.mark_deleted(); end;... "expunge" the folder (permanently delete the message)
mail_client.expunge_folder;... close the folder ...
mail_client.close_folder;... and finally disconnect from the server.
mail_client.disconnect_server;Note for SSL users:
declare v_property varchar2(32767); begin c_property := dbms_java.set_property('java.security.egd', '/dev/urandom'); end;The database user needs a privilege in order to execute this call:
begin dbms_java.grant_permission( grantee => '{Database Schema}', permission_type => 'SYS:java.util.PropertyPermission', permission_name => 'java.security.egd', permission_action => 'read,write' ); end; /
Field Summary | |
varchar2(4) | PROTOCOL_IMAP
Constant for procedure CONNECT_SERVER: Use the IMAP protocol |
varchar2(4) | PROTOCOL_POP3
Constant for procedure CONNECT_SERVER: Use the POP3 protocol |
Method Summary | |
| close_folder()
closes the currently open mailbox folder. |
| connect_server(p_hostname varchar2, p_port number, p_protocol varchar2, p_userid varchar2, p_passwd varchar2, p_ssl boolean)
Connects to a mailserver. |
| create_folder(p_foldername varchar2)
Creates a folder under the current folder |
| delete_folder(p_foldername varchar2)
Deletes a subfolder under the current folder |
| disconnect_server()
disconnects from the server. |
| expunge_folder()
performs the "expunge" operation on the mailbox folder: permanatly deletes all messages marked as "deleted". |
number | get_fetch_limit()
Returns the current Fetch Limit for GET_MAIL_HEADERS. |
varchar2 | get_folder_fullname()
Returns the full name of the current folder |
varchar2 | get_folder_name()
Returns the short name of the current folder |
mail_array_ct | get_folders()
Retrieves the current folders' subfolder list |
mail_t | get_mail_headers()
Retrieve all messages in the folder as TABLE OF MAIL_T. |
mail_t | get_mail_headers_p()
Retrieve all messages in the folder as TABLE OF MAIL_T. |
mail_t | get_message(p_message_number number)
Get the Message object corresponding to the given message number. |
number | get_message_count()
Returns the message count within the current folders |
number | get_new_message_count()
Returns the "New Message" count within the current folders |
number | get_unread_message_count()
Returns the "Unread Message" count within the current folders |
number | is_connected()
Checks whether the session is currently connected to a mailserver. |
| open_child_folder(p_foldername varchar2)
Opens a child folder |
| open_folder(p_folder varchar2)
Opens a mailbox folder |
| open_inbox()
Opens the mailbox folder "INBOX". |
| open_parent_folder()
Opens the parent folder. |
| rename_folder(p_foldername varchar2, p_new_foldername varchar2)
Renames a folder |
varchar2 | rfc_decode(p_text varchar2)
Decodes encoded special characters (unicode, etc) to normal text. |
| set_fetch_limit(p_limit number)
Sets the Fetch Limit for GET_MAIL_HEADERS. |
Field Detail |
public varchar2(4) PROTOCOL_IMAP
public varchar2(4) PROTOCOL_POP3
Method Detail |
public connect_server(p_hostname varchar2,
p_port number,
p_protocol varchar2,
p_userid varchar2,
p_passwd varchar2,
p_ssl boolean)
p_hostname
-
Hostname of the mail serverp_port
-
TCP/IP port of the mail server. For IMAP connections this is typically 143, for POP3 connections 110.p_protocol
-
Protocol to use: Either MAIL_CLIENT.PROTOCOL_IMAP or MAIL_CLIENT.PROTOCOL_POP3.p_userid
-
Userid for the mailserver connection.p_passwd
-
Password for the mailserver connection.p_ssl
-
SSL flag - defaults to false.public number is_connected()
public open_inbox()
public open_folder(p_folder varchar2)
p_folder
-
absolute folder pathpublic open_parent_folder()
public open_child_folder(p_foldername varchar2)
p_foldername
-
folder path to be opened relative to the current folderpublic close_folder()
public expunge_folder()
public disconnect_server()
public mail_t get_mail_headers_p()
SELECT * FROM TABLE(MAIL_CLIENT.GET_MAIL_HEADERS_P())
public mail_t get_mail_headers()
SELECT * FROM TABLE(MAIL_CLIENT.GET_MAIL_HEADERS())
public mail_t get_message(p_message_number number)
p_message_number
-
the message numberpublic number get_message_count()
public number get_new_message_count()
public number get_unread_message_count()
public number get_fetch_limit()
public set_fetch_limit(p_limit number)
p_limit
-
the new Fetch Limit for GET_MAIL_HEADERS - "-1" means: unlimitedpublic mail_array_ct get_folders()
public varchar2 rfc_decode(p_text varchar2)
SQL> select mail_client.decode('Test f=?iso-8859-15?B?/A==?=r den Mailserver') decoded_text from dual; DECODED_TEXT -------------------------------------------------------------------------------- Test für den Mailserver
p_text
-
the text to be decodedpublic create_folder(p_foldername varchar2)
p_foldername
-
the path of the subfolder to be created relative to the current folder.public rename_folder(p_foldername varchar2,
p_new_foldername varchar2)
p_foldername
-
the path of the subfolder to be renamed relative to the current folder.p_new_foldername
-
the new path relative to the current folder.public delete_folder(p_foldername varchar2)
p_foldername
-
the path of the subfolder to be deleted relative to the current folder.public varchar2 get_folder_name()
public varchar2 get_folder_fullname()
| PL/SQL Email Client | |||||
SUMMARY: FIELD | TYPE | METHOD | DETAIL: FIELD | TYPE | METHOD |