Envoyer un email avec PLSQL Oracle

Fermé
PSYcoZZ Messages postés 40 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 8 février 2005 - 2 févr. 2005 à 09:45
 John Cleese - 25 août 2009 à 15:12
Bonjour,
Comment j px envoyer un email avec le code PLSQL??
J'ai parcouru le WEB entier et po de reponse. J'espere que vous trouviez!
merci d'avance!!

2 réponses

Utilise le package UTL_SMTP.

Rien qu'en regardant les spécifications du package, j'obtiens un exemple exploitable :

/*******************************************************************
* OVERVIEW
*
* This package provides SMTP client-side access functionality in PL/SQL.
* With this package, a PL/SQL program can send electronic mails via SMTP.
* This package does not allow the PL/SQL program to receive e-mails via
* SMTP. The user of this package should be familiar with the SMTP protocol
* as defined in RFC 821 and RFC 1869.
*
* This package is meant to provide an API to SMTP protocol directly. Users
* may find it useful to define additional helper routines to encapsulate
* the interaction with a SMTP server.
*
* USES
*
* A SMTP connection is initiated by a call to open_connection, which
* returns a SMTP connection. After a connection is established, the
* following calls are required to send a mail:
*
* helo() - identify the domain of the sender
* mail() - start a mail, specify the sender
* rcpt() - specify the recipient
* open_data() - start the mail body
* write_data() - write the mail body (multiple calls allowed)
* close_data() - close the mail body and send the mail
*
* The SMTP connection is closed by calling quit().
*
* A note on API style and raising PL/SQL exception:
*
* Most of the API has a function form and a procedure form. The function
* form returns the reply message after the command is sent, in the form
* of "XXX <an optional reply message>", where XXX is the reply code.
* The procedure form of the same API calls the function form of the API,
* checks the reply code and raises transient_error or permanent_error
* exception if the reply code is in 400 or 500 range. The function form
* of the API does not raise either of the 2 exceptions.
*
* All API may raise invalid_operation exception if it is called in either
* of the situations:
*
* 1. calling API other than write_data(), write_raw_data() or close_data()
* after open_data(0 is called, or
* 2. calling write_data(), write_raw_data() or close_data() without
* first calling open_data()
*
* EXAMPLES
* Retrieve the home page from http://www.acme.com/
*
* DECLARE
* c utl_smtp.connection;
*
* PROCEDURE send_header(name IN VARCHAR2, header IN VARCHAR2) AS
* BEGIN
* utl_smtp.write_data(c, name || ': ' || header || utl_tcp.CRLF);
* END;
*
* BEGIN
* c := utl_smtp.open_connection('smtp-server.acme.com');
* utl_smtp.helo(c, 'foo.com');
* utl_smtp.mail(c, 'sender@foo.com');
* utl_smtp.rcpt(c, 'recipient@foo.com');
* utl_smtp.open_data(c);
* send_header('From', '"Sender" <sender@foo.com>');
* send_header('To', '"Recipient" <recipient@foo.com>');
* send_header('Subject', 'Hello');
* utl_smtp.write_data(c, utl_tcp.CRLF || 'Hello, world!');
* utl_smtp.close_data(c);
* utl_smtp.quit(c);
* EXCEPTION
* WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
* BEGIN
* utl_smtp.quit(c);
* EXCEPTION
* WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
* NULL; -- When the SMTP server is down or unavailable, we don't
* -- have a connection to the server. The quit call will
* -- raise an exception that we can ignore.
* END;
* raise_application_error(-20000,
* 'Failed to send mail due to the following error: ' || sqlerrm);
* END;
*/
7
PSYcoZZ Messages postés 40 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 8 février 2005 5
2 févr. 2005 à 12:16
Ya kelkun ki a la moindre idee??
J'attends vos reponses..merci
0