使用Oracle发送邮件

来源:互联网 发布:凯立德改端口工具 编辑:程序博客网 时间:2024/05/16 03:57

CREATE OR REPLACE PROCEDURE sendemailtest
(mailmsg IN Varchar2)
IS    
   --using mail server to send email.
   mailconn         UTL_SMTP.connection;
   mailhost         VARCHAR2 (20);
   mailfrom         VARCHAR2 (30);
  
BEGIN
   --(1) open connection to mail server.
   mailhost := 'xxx.xxx.xxx.xxx';
   mailfrom := 'Test@MailAddress.com';
   mailconn := UTL_SMTP.open_connection(mailhost);
   UTL_SMTP.helo (mailconn, mailhost);
   UTL_SMTP.mail (mailconn, mailfrom);

 

   --(2) set recipients.  
   UTL_SMTP.rcpt (mailconn, 'ToMail@MailAddress.com');

 

   --(3) send content.
   UTL_SMTP.open_data (mailconn);
   UTL_SMTP.write_data(mailconn, 'Date: '||to_char(sysdate,'yyyy/mm/dd hh24:mi:ss')|| UTL_TCP.crlf);
   UTL_SMTP.write_data(mailconn, 'From: FromWho' || UTL_TCP.crlf);
   UTL_SMTP.write_data(mailconn, 'To: ToWho' || UTL_TCP.crlf);
   UTL_SMTP.write_data(mailconn, 'Subject: TestSendMail' || UTL_TCP.crlf);
   UTL_SMTP.write_data(mailconn, 'MIME-Version: 1.0' || UTL_TCP.crlf);
   UTL_SMTP.write_data(mailconn, 'Content-Type: text/html; charset=utf-8' || UTL_TCP.crlf );
   UTL_SMTP.write_data(mailconn, 'Content-Transfer-Encoding: "8Bit"' || UTL_TCP.crlf);
  
   UTL_SMTP.write_data (mailconn, UTL_TCP.crlf || mailmsg);
   UTL_SMTP.close_data (mailconn);
  
   --(4) close connection.
   UTL_SMTP.quit (mailconn);
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line (SUBSTR (SQLERRM, 1, 100));
END;

原创粉丝点击