首页 > 数据库 > Oracle > 正文

一个可以在Oracle发信的Procedure范例

2024-08-29 13:42:32
字体:
来源:转载
供稿:网友
 
  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来寄信,简单又轻易实做!!  

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表