APEX : Send email with attachment (Part 2)

Please refer to my previous post related to this, here.

Moving forward, by now you should already completed doing these 2 things:

  1. User can insert any attachment into the form
  2. The attachment will be save into my own table within the Oracle database.

So now, the next step is to configure APEX to sent-out email together with the attachment.

The email process must be create at point [Processing > Processes] on [Page Processing] , right after the ‘CopyFile’ process (refer to my previous post)

  1. Right click on [Processes] > Create
  2. Select [PL/SQL] and Next
  3. Give a name to identify the procesess and click Next
  4. On the [Enter PL/SQL Page Process], paste below code;

    l_id number;
    l_id := APEX_MAIL.SEND( p_to        => ‘fred@flintstone.com’,
                            p_from      => ‘barney@rubble.com’,
                            p_subj      => ‘APEX_MAIL with attachment’,
                            p_body      => ‘Please review the attachment.’,
                            p_body_html => ‘<b>Please</b> review the attachment’ );
    FOR c1 IN (SELECT filename, blob_content, mime_type
                 FROM attachment_files
                WHERE ID = :P1_YOUR_ID ) loop
    APEX_MAIL.ADD_ATTACHMENT( p_mail_id    => l_id,
                                  p_attachment => c1.blob_content,
                                  p_filename   => c1.filename,
                                  p_mime_type  => c1.mime_type);
   P_SMTP_HOSTNAME => ‘localhost’,
   P_SMTP_PORTNO => ’25’

Please see the code and change whenever suit with your table name and page item. For example code below:

FOR c1 IN (SELECT filename, blob_content, mime_type
                 FROM attachment_files
                WHERE ID = :P1_YOUR_ID ) loop

The [attachment_files] comes from my table which I have created previously in so called Part 1.
You can have multiple ‘File Browse…’. You may also need to change the PL/SQL code if have more [File Browse]. Do comment below if you still need help.
I will try my best to help. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *