Отправка электронной почты средствами Oracel APEX apex_mail.send
18.02.2016

Об отправке электронной почты средствами Oracle APEX написано много, достаточно набрать в поисковике "apex_mail.send". Если Вам нужно отправить письмо из приложения, например при нажатии на кнопку, код процесса будет примерно таким:

BEGIN
  l_html := '
<html>
  <head>
    <meta http-equiv=Content-Type content="text/html; charset=utf-8"></head>
  <body lang=RU link=blue vlink=purple>
     тело письма
  </body>
</html>';
  apex_mail.send(p_to => 'to@mail.ru', p_from => 'from@mail.ru', p_body => 'тело письма', p_body_html => l_html, p_subj => 'Тема');
END;

Этот анонимный блок выполняется в рамках сессии APEX. Если же Вам нужно отправить письмо вне рамок сессии APEX, например, job-м по расписанию, или при срабатывании триггера, то необходимо перед вызовом apex_mail.send задать security_group_id, без этого будет ошибка "ORA-20001: This procedure must be invoked from within an application session". Правильно это делать процедурой:

wwv_flow_api.set_security_group_id(apex_util.find_security_group_id(p_workspace => 'Имя вашего WorkSpace-а'));

или даже так:

wwv_flow_api.set_security_group_id();

Кроме указанной выше процедуры есть еще одна:

apex_util.set_security_group_id;

Её я не рекомендую использовать! Дело в том, что работают эти две процедуры по разному. Это проявляется когда код, отправляющий письмо, выполняется в рамках сессии БД инициированной пользователем ANONYMOUS. В первом случае security_group_id устанавливается корректно, во втором же остается пустым и приводит к ошибке "ORA-20001: This procedure must be invoked from within an application session". Так что правильно писать так:

BEGIN
  l_html := '
<html>
  <head>
    <meta http-equiv=Content-Type content="text/html; charset=utf-8"></head>
  <body lang=RU link=blue vlink=purple>
     тело письма
  </body>
</html>';
  wwv_flow_api.set_security_group_id();
  apex_mail.send(p_to => 'to@mail.ru', p_from => 'from@mail.ru', p_body => 'тело письма', p_body_html => l_html, p_subj => 'Тема');
END;

release 1.0