Bonjour
Je souhaiterais savoir s'il est possible d'envoyer des mails en PL-SQL ?
Faut il un package spécial ?
Merci beaucoup pour vos informations
Cordialement
Kilian
Bonjour
Je souhaiterais savoir s'il est possible d'envoyer des mails en PL-SQL ?
Faut il un package spécial ?
Merci beaucoup pour vos informations
Cordialement
Kilian
C'est possible en utilisant le package UTL_STMP. Voir: http://jaouad.developpez.com/mail/
Merci beaucoup pour ce tutorial.
je suis newbies et j'aurais une derniere question à vous posez. Est il possible de savoir si le package SMTP est deja installé ou non sur le serveur ?
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select status, owner, created from dba_objects where object_name='UTL_SMTP'
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
Ok parfait je vois que le package est bien installé maintenant je vais effectuer les test pour l'envoie de mail
Je m'excuse vraiment de vous deranger mais en tester cela :
j'obtiens cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 begin UTL_MAIL.send( sender => 'user1@domaine.fr', recipients => 'user2@domaine.fr', cc => NULL, bcc => NULL, subject => 'test', message => 'texte', ); end;
Avez vous une idée de cette erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ); * ERREUR à la ligne 17 : ORA-06550: Ligne 17, colonne 2 : PLS-00103: Symbole ")" rencontré à la place d'un des symboles suivants : ( - + case mod new not null others <an identifier> <a double-quoted delimited-identifier> <a bind variable> avg count current exists max min prior sql stddev sum variance execute forall merge time timestamp interval date <a string literal with character set specification> <a number> <a single-quoted SQL string> pipe Symbole "null" a été substitué à ")" pour continuer.
Meric bcp
Il n'y a pas une virgule en trop apres le dernier parametre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part message => 'texte',
En ayant supprimer la virgule :
J'obtiens une erreur de declacration :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 begin UTL_MAIL.send( sender => 'user1@.domaine.fr', recipients => 'user1@.domaine.fr', cc => NULL, bcc => NULL, subject => 'test', message => 'texte' ); end;
Faut il déclarer UTL_MAIL.send ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UTL_MAIL.send( * ERREUR à la ligne 3 : ORA-06550: Ligne 3, colonne 1 : PLS-00201: l'identificateur 'UTL_MAIL.SEND' doit être déclaré ORA-06550: Ligne 3, colonne 1 : PL/SQL: Statement ignored
Vous n'avez pas les droits sur le package UTL_MAIL
Connecté avec le compte sys faites (pour donner les droits à tous les user oracle d'utiliser ce package) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part grant execute on utl_mail to public;
Pourtant lorsque j'execute la requete :
j'obtiens cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select status, owner, created from dba_objects where object_name='UTL_SMTP';
Donc d'apres ce que je vois PUBLIC a les droits ou bien ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 STATUS OWNER CREATED ------- ------------------------------ -------- VALID SYS 12/05/02 VALID SYS 12/05/02 VALID PUBLIC 12/05/02 3 ligne(s) sélectionnée(s).
( je m'excuse pour toutes mes questions )
Merci à vous
Oui sur UTL_SMTP mais c'est UTL_MAIL que tu essaies d'utiliserEnvoyé par kilian
Je viens d'effectuer un test avec ce code
Ce dernier fonctionne, je vous remercie pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SQL> DECLARE 2 v_connection UTL_SMTP.CONNECTION; 3 BEGIN 4 v_connection := UTL_SMTP.OPEN_CONNECTION('mailhost.bc.ca',25); 5 UTL_SMTP.HELO(v_connection,'mailhost.bc.ca'); 6 UTL_SMTP.MAIL(v_connection,'me@here.bc.ca'); 7 UTL_SMTP.RCPT(v_connection,'you@there.bc.ca'); 8 UTL_SMTP.DATA(v_connection,'Sent From PL/SQL'); 9 UTL_SMTP.QUIT(v_connection); 10 END; 11 /
Partager