1. 개요
Oracle Procedure를 이용한 Mail 보내기(SMTP)
2. 활용분야
- MIS 내에서 본인 확인을 거친 후 암호초기화하여 본인에게 메일발송
- Monitoring 프로그램에서 필요 시 담당자에 메일발송
3. 내용
사용자들이 본인의 암호를 잊고 암호 초기화 S/R을 요청하고, 담당자들은 암호를 초기화하여 사용자에게
초기화암호를 알려주는 현 Process에서 담당자를 거치지 않고 MIS 내에서 본인인증을 거친 후 초기화한
암호를 사용자 메일계정으로 발송.
1) Oracle 8.1.6 이상에서 가능하며
2) loadjava -resolve -user system/manager $ORACLE_HOME/plsql/jlib/plsql.jar 실행
/* Oracle 9i 에서는 불필요. */
3) Procedure 생성
procedure sendmail(to_addr in varchar2,cc_addr1 in varchar2,cc_addr2 in varchar2,
subject in varchar2, body in varchar2)
is
crlf varchar2(2):=CHR(13)||CHR(10);
mesg varchar2(4000);
mailhost varchar2(30):='218.22.45.213'; -- 'echoi.hansol.co.kr' 식으로 해도 됩니다.
conn UTL_SMTP.CONNECTION;
BEGIN
conn:=utl_smtp.open_connection(mailhost,25);
utl_smtp.helo(conn,mailhost);
utl_smtp.mail(conn,to_addr);
utl_smtp.rcpt(conn, 'To:'||to_addr);
utl_smtp.rcpt(conn, 'cc:'||cc_addr1);
utl_smtp.rcpt(conn, 'cc:'||cc_addr2);
mesg:= 'Date: ' || TO_CHAR( SYSDATE, 'dd Mon yy hh24:mi:ss' ) || crlf ||
'From: ' || 'MIS담당자'|| ' <' || 'yhlee@hansol.co.kr' || '>' || crlf ||
'Subject: ' || subject || crlf;
mesg:=mesg||'To: '||to_addr||crlf;
mesg:=mesg||'Cc: '||cc_addr1||crlf;
mesg:=mesg||'Cc: '||cc_addr2||crlf;
mesg:= mesg || '' || crlf || body;
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;
3) Procedure 실행
execute sendmail('bear@hansol.co.kr','lion@hansol.co.kr','tiger@hansol.co.kr','귀하의 암호정보입니다.',
'초기와 암호는 A0098CF 입니다. 로긴 후 암호를 변경해 주시길 바랍니다.');
☞ 곰돌이 사용자에게 암호화를 초기화 하여 메일 발송. 사자와 호랑이는 참조.
※ 필요에 따라 Procedure 를 수정해서 사용하시면 됩니다.
'닷컴's_열공 > Database' 카테고리의 다른 글
[oracle강좌] 오라클 / PL-SQL 에서 쿼리시 Array Processing (0) | 2008.01.14 |
---|---|
imp/exp 적절한 사용법 (0) | 2008.01.14 |
sql 기준월 구하는 쿼리 SQL (0) | 2008.01.05 |
[Oracle]날짜관련 연산 SQL (0) | 2007.12.26 |
Oracle Supplied PL/SQL Packages (0) | 2007.12.26 |