http://www.yesky.com/SoftChannel/72342371928965120/20030310/1656035.shtml

解决方案 »

  1.   

    ORACLE培训时提供的例子,够权威吧?
    CREATE OR REPLACE PROCEDURE send_message
      (p_recipient  VARCHAR2,
       p_subject    VARCHAR2,
       p_message    VARCHAR2)
    IS
       mailhost    VARCHAR2(64) := 'gmapacsmtp.oraclecorp.com';
       sender      VARCHAR2(64) := '[email protected]';
       mail_conn   utl_smtp.connection;
    BEGIN
       mail_conn := utl_smtp.open_connection(mailhost, 25);
       utl_smtp.helo(mail_conn, mailhost);
       utl_smtp.mail(mail_conn, sender);
       utl_smtp.rcpt(mail_conn, p_recipient);
       utl_smtp.open_data(mail_conn);
       utl_smtp.write_data(mail_conn, 'Subject: ' ||
                           p_subject || utl_tcp.CRLF);
       utl_smtp.write_data(mail_conn, p_message);
       utl_smtp.close_data(mail_conn);
       utl_smtp.quit(mail_conn);
    EXCEPTION
      WHEN OTHERS THEN -- Handle the error
        dbms_output.put_line ('Error occurred during the mail operation.');
    END send_message;
    /execute send_message('[email protected]','just a test','send mail from pl/sql');