CREATE OR REPLACE PROCEDURE SEND_MAIL(SUBJECT IN VARCHAR2,
CONTENTSED IN VARCHAR2
) IS
EMAIL_SERVER VARCHAR2(30) := '10.1.200.6';
SENDER_ADDRESS VARCHAR2(50) := 'test@cz.com.cn';--发件地址
RECEIVER_ADDRESS VARCHAR2(30); --收件人地址变量
PORT NUMBER := 25;
CONN UTL_SMTP.CONNECTION;
MESG VARCHAR2(4000);
cursor c_mail is select mail_address from tab_send_mail; --收件人地址表
BEGIN
-----------------------
for c_mail_v in c_mail
loop
RECEIVER_ADDRESS:=c_mail_v.mail_address;
CONN:= UTL_SMTP.OPEN_CONNECTION(EMAIL_SERVER,PORT);
UTL_SMTP.HELO(CONN,EMAIL_SERVER);
UTL_SMTP.MAIL(CONN,SENDER_ADDRESS);
UTL_SMTP.RCPT(CONN,RECEIVER_ADDRESS);
MESG:= 'CONTENT-TYPE: TEXT/PLAIN; CHARSET=utf-8' || UTL_TCP.CRLF ||
'DATE:' || TO_CHAR(SYSDATE,'YYYYMMDD HH24:MI:SS') || UTL_TCP.CRLF ||
'FROM:' || SENDER_ADDRESS || UTL_TCP.CRLF ||
'SUBJECT:' || SUBJECT || UTL_TCP.CRLF ||
'TO: '|| RECEIVER_ADDRESS || UTL_TCP.CRLF ||
'CONTENT-TYPE: TEXT/PLAIN; CHARSET=utf-8' || UTL_TCP.CRLF ||
'' || UTL_TCP.CRLF || CONTENTSED || UTL_TCP.CRLF ;
UTL_SMTP.OPEN_DATA(CONN);
UTL_SMTP.WRITE_RAW_DATA(CONN,UTL_RAW.CAST_TO_RAW(MESG));
UTL_SMTP.CLOSE_DATA(CONN);
UTL_SMTP.QUIT(CONN);
end loop;
END;
/