Forum APEX - Développement Oracle Application Express

Le site des développeurs francophones APEX - Oracle Application Express

Vous n'êtes pas identifié(e).

Annonce

Bienvenue sur le forum Oracle APEX

S'il s'agit de votre première visite, nous vous invitons à consulter la FAQ en cliquant sur le lien ci-dessous. Vous pouvez poster ici toutes vos questions sur l'installation, le développement (composants clients et serveurs), l'administration des instances Oracle APEX. Par ailleurs, ce forum diffuse les annonces et actualités relatives à Oracle APEX.

Oracle APEX 4.1

Oracle APEX 4.1 est disponible depuis le 24 août 2011.

Oracle APEX 4.0

Oracle APEX 4.0 est disponible depuis le 23 juin 2010. Il existe 2 distributions, une distribution en langue anglaise uniquement et une distribution multilingue.

#1 2010-08-13 14:51:27

admin
Administrateur
Inscription : 2010-08-02
Messages : 83

Comment faire un envoi massif de mails à partir de APEX ?

Le package APEX_MAIL fournit 3 procédures pour envoyer de mails à partir d'une application Oracle APEX.

  1. APEX_MAIL.ADD_ATTACHMENT

  2. PUSH_QUEUE

  3. SEND

Si vous avez un envoi massif de mails, il est recommandé de les stocker dans la file d'attente APEX_MAIL_QUEUE.
Cette file d'attente est le synonyme de la table WWV_FLOW_USER_MAIL_QUEUE, elle se trouve dans le schéma utilisateur APEX_xxyy00 (xx version APEX
yy niveau version APEX
), exemple APEX030200 pour la version APEX 3.2.

Il convient de faire les Insert dans la file d'attente à l'intérieur d'une boucle et d'ajouter à la fin, la procédure APEX_MAIL.PUSH_QUEUE.

Voici l'exemple d'une procédure qui envoie un mail à partir table EMP du schéma HR. Pour chaque ligne EMP, elle insère une ligne
dans la file d'attente APEX_MAIL_QUEUE . A la fin de la boucle FOR, on trouve la procédure APEX_MAIL.PUSH_QUEUE.

create or replace procedure emailing is

-- envoi massif massif de mails

Cursor c_mail is SELECT * from emp; 

begin
      
  for m in c_mail loop
       INSERT INTO APEX_MAIL_QUEUE  (MAIL_TO, MAIL_FROM, MAIL_SUBJ, MAIL_BODY ) 
      VALUES 
      (m.EMAIL, '<alias>', 'Envoi massif de mail du '||sysdate); 
  end loop;

commit;

  APEX_MAIL.PUSH_QUEUE;

end; -- emailing

NB Pensez à accorder le privilège Execute sur la file d'attente à votre schéma utilisateur.

Exemple

GRANT INSERT ON "APEX_030200"."WWV_FLOW_USER_MAIL_QUEUE" to HR

Hors ligne

Pied de page des forums