CREATE OR REPLACE PROCEDURE "SYS"."SEND_MAIL" ( pSender VARCHAR2, pRecipient VARCHAR2, pSubject VARCHAR2, pMessage VARCHAR2) IS
mailhost CONSTANT VARCHAR2(30) := 'YOUR MAIL SYSTEM IP OR FQDN'; crlf CONSTANT VARCHAR2(2):= CHR(13) CHR(10); mesg VARCHAR2(1000); mail_conn UTL_SMTP.CONNECTION; BEGIN mail_conn := utl_smtp.open_connection(mailhost, 25); mesg := 'Date: ' TO_CHAR( SYSDATE, 'dd Mon yy hh24:mi:ss' ) crlf 'From: <' pSender '>' crlf 'Subject: ' pSubject crlf 'To: 'pRecipient crlf '' crlf pMessage; utl_smtp.helo(mail_conn, mailhost); utl_smtp.mail(mail_conn, pSender); utl_smtp.rcpt(mail_conn, pRecipient); utl_smtp.data(mail_conn, mesg); utl_smtp.quit(mail_conn); END send_mail; 使用范例 SQL> desc send_mail PROCEDURE send_mail Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- PSENDER VARCHAR2 IN PRECIPIENT VARCHAR2 IN PSUBJECT VARCHAR2 IN PMESSAGE VARCHAR2 IN SQL> exec send_mail('apple','chu@odba.idv.tw','Test','hello') PL/SQL procedure sUCcessfully completed. 上面的范例是利用远端的mail service来寄信,简单又轻易实做!!
|