阿宽

Nothing is more powerful than habit!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Oracle中發郵件代碼

Posted on 2008-07-16 09:24  宽田  阅读(354)  评论(0编辑  收藏  举报

CREATE OR REPLACE PROCEDURE send_mail (
   pemail   
IN   VARCHAR2,
   ppw      
IN   VARCHAR2,
   pid      
IN   VARCHAR2
)
IS
   l_mailhost    
VARCHAR2 (64)       := 'IP';
   l_from        
VARCHAR2 (64)       := '账号@邮件域名';
   l_subject     
VARCHAR2 (64)       := '标题';
   l_to          
VARCHAR2 (64)       := pemail;
   l_mail_conn   UTL_SMTP.connection;
BEGIN
   
--l_mail_conn := UTL_SMTP.open_connection(l_mailhost, 25);
   --UTL_SMTP.helo(l_mail_conn, l_mailhost);

   
-- open SMTP connection
   l_mail_conn := UTL_SMTP.open_connection(l_mailhost, 端口);
   UTL_SMTP.ehlo (l_mail_conn, l_mailhost);
   UTL_SMTP.command (l_mail_conn, 
'xxxx');
   UTL_SMTP.command
      (l_mail_conn,
       UTL_RAW.cast_to_varchar2
                      (UTL_ENCODE.base64_encode (UTL_RAW.cast_to_raw (
'XXX')
                                                )
                      )
      );
   UTL_SMTP.command
      (l_mail_conn,
       UTL_RAW.cast_to_varchar2
                      (UTL_ENCODE.base64_encode (UTL_RAW.cast_to_raw (
'xXXX')
                                                )
                      )
      );
      
   UTL_SMTP.mail (l_mail_conn, l_from);
   UTL_SMTP.rcpt (l_mail_conn, l_to);
   UTL_SMTP.open_data (l_mail_conn);
   UTL_SMTP.write_data (l_mail_conn,
                           
'Date: '
                        
|| TO_CHAR (SYSDATE, 'DD-MON-YYYY HH24:MI:SS')
                        
|| CHR (13)
                       );
   UTL_SMTP.write_data (l_mail_conn, 
'From: ' || l_from || CHR (13));
   UTL_SMTP.write_data (l_mail_conn, 
'Subject: ' || l_subject || CHR (13));
   UTL_SMTP.write_data (l_mail_conn, 
'To: ' || l_to || CHR (13));
   UTL_SMTP.write_data (l_mail_conn, 
'' || CHR (13));
   UTL_SMTP.write_data (l_mail_conn, 
'Dear Sir' || CHR (13));
   UTL_SMTP.write_data (l_mail_conn, 
'' || CHR (13));
   UTL_SMTP.write_data (l_mail_conn,
                           
'  Your acoount is created as '
                        
|| pid
                        
|| ' and password is '
                        
|| ppw
                        
|| CHR (13)
                       );
   UTL_SMTP.write_data
               (l_mail_conn,
                   
'  XXXX '
                
|| CHR (13)
               );
   UTL_SMTP.write_data
                (l_mail_conn,
                    
'XXX '
                 
|| CHR (13)
                );
   UTL_SMTP.write_data (l_mail_conn,
                        
'http://IP地址 to log in.' || CHR (13)
                       );
   UTL_SMTP.write_data
         (l_mail_conn,
             
'  XXXX'
          
|| CHR (13)
         );
   UTL_SMTP.write_data (l_mail_conn, 
'what you can do.' || CHR (13));
   UTL_SMTP.write_data (l_mail_conn,
                        
'  XXX' || CHR (13)
                       );
   UTL_SMTP.write_data (l_mail_conn, 
'' || CHR (13));
   UTL_SMTP.write_data (l_mail_conn, 
'  Sincerely' || CHR (13));
   UTL_SMTP.write_data (l_mail_conn, 
' ' || CHR (13));
   UTL_SMTP.write_data (l_mail_conn,
                        
'From XXXX ' || CHR (13)
                       );
   UTL_SMTP.close_data (l_mail_conn);
   UTL_SMTP.quit (l_mail_conn);
END;