You can use the APEX_MAIL package to send an email from an Oracle Application Express application. This package is built on top of the Oracle supplied UTL_SMTP package. Because of this dependence, the UTL_SMTP package must be installed and functioning to use APEX_MAIL.

APEX_MAIL contains three procedures. Use APEX_MAIL.SEND to send an outbound email message from your application. Use APEX_MAIL.PUSH_QUEUE to deliver mail messages stored in APEX_MAIL_QUEUE. Use APEX_MAIL.ADD_ATTACHMENT to send an outbound email message from your application as an attachment.


Oracle Application Express installs the database job ORACLE_APEX_MAIL_QUEUE, which periodically sends all mail messages stored in the active mail queue. In order to call the APEX_MAIL package from outside the context of an Application Express application, you must call apex_util.set_security_group_id as in the following example:
for c1 in (
   select workspace_id
     from apex_applications
    where application_id = p_app_id )
   apex_util.set_security_group_id(p_security_group_id =>
end loop;