UTL_SMTP Package
UTL_SMTP is designed for sending e-mail over Simple Mail Transfer Protocol (SMTP).

It does not have the functionality to implement an SMTP server for mail clients to send e-mail using SMTP. Many interfaces to the SMTP package appear as both a function and a procedure. The functional form returns the reply from the server for processing by the client. The procedural form discards the reply but raises an exception if the reply indicates a transient (400-range reply code) or permanent error (500-range reply code). Note that the original SMTP protocol communicates using 7-bit ASCII. Using UTL_SMTP, all text data (in other words, those in VARCHAR2) will be converted to US7ASCII before it is sent over the wire to the server. Some implementations of SMTP servers that support SMTP extension 8BITMIME [RFC1652] support full 8-bit communication between client and server.

UTL_SMTP.UTL_CLOSE_DATA

Closes the data session

UTL_SMTP.COMMAND

Performs a generic SMTP command

UTL_SMTP.COMMAND_REPLIES

Performs initial handshaking with SMTP server after connecting

UTL_SMTP.DATA

Performs initial handshaking with SMTP server after connecting, with extended information returned

UTL_SMTP.EHLO

Performs initial handshaking with SMTP server after connecting, with extended information returned

UTL_SMTP.HELO

Performs initial handshaking with SMTP server after connecting

UTL_SMTP.HELP

Sends HELP command

UTL_SMTP.MAIL

Initiates a mail transaction with the server, the destination is a mailbox

UTL_SMTP.NOOP

The null command

UTL_SMTP.OPEN_CONNECTION

Opens a connection to an SMTP server

UTL_SMTP.OPEN_DATA

Sends the DATA command

UTL_SMTP.QUIT

Terminates an SMTP session and disconnects from the server

UTL_SMTP.RCPT

Specifies the recipient of an e-mail message

UTL_SMTP.RSET

Terminates the current mail transaction

UTL_SMTP.VRFY

Verifies the validity of a destination e-mail address

UTL_SMTP.WRITE_DATA

Writes a portion of the e-mail message

UTL_SMTP.WRITE_RAW_DATA

Writes a portion of the e-mail message with RAW data

UTL_SMTP EXCEPTIONS

The list of exceptions raised by the interface of the UTL_SMTP package are

  • INVALID_OPERATION : Raised when an invalid operation is made. In other words, calling API other than write_data(), write_raw_data() or close_data() after open_data() is called, or calling write_data(), write_raw_data() or close_data() without first calling open_data().
  • TRANSIENT_ERROR : Raised when receiving a reply code in 400 range.
  • PERMANENT_ERROR : Raised when receiving a reply code in 500 range.