모니터링을 위해서 주기적으로 메일이 발송되도록 하는작업을 함.
(인터넷을 뒤져봐서 되는것과 함께 [한글]처리하는것 포함해서 처리한것)
CREATE OR REPLACE PROCEDURE 프로시저명 (
pSender VARCHAR2,
pRecipient VARCHAR2,
pSubject VARCHAR2,
pMessage CLOB) IS
c UTL_SMTP.CONNECTION;
MSG CLOB;
l_boundary VARCHAR2(50) := '----=*#abc1234321cba#*=';
E_SQLCODE VARCHAR2(30);
E_SQLMSG VARCHAR2(1000);
BEGIN
c := UTL_SMTP.OPEN_CONNECTION('localhost');
UTL_SMTP.HELO(c, 'localhost');
UTL_SMTP.MAIL(c, pSender);
UTL_SMTP.RCPT(c, pRecipient);
UTL_SMTP.OPEN_DATA(c);
MSG := 'From : ' || '"Sender" <'||pSender||'>' ||UTL_TCP.CRLF;
MSG := MSG||'To' || ': ' || '"Recipient" <'||pRecipient||'>' || UTL_TCP.CRLF;
MSG := MSG||'Subject' || ': ' || pSubject || UTL_TCP.CRLF;
MSG := MSG||'MIME-Version: 1.0' || UTL_TCP.CRLF;
--MSG := MSG||'Content-Type: multipart/alternative; boundary="'||l_boundary || '"' || UTL_TCP.crlf || UTL_TCP.crlf;
MSG := MSG||'Content-Type: text/html; charset="UTF-8"' ||UTL_TCP.crlf || UTL_TCP.crlf;
MSG := MSG||UTL_TCP.CRLF ||pMessage;
UTL_SMTP.WRITE_RAW_DATA(c,UTL_RAW.CAST_TO_RAW(MSG));
UTL_SMTP.CLOSE_DATA(c);
UTL_SMTP.QUIT(c);
EXCEPTION
WHEN OTHERS THEN
UTL_SMTP.QUIT(c);
END;
/
네트워크 접근에 관한부분이 smtp 있다고 되는게 아니더라.
아래의 dict 를 조회하면 네트워크 접근 엑세스 정보 확인이 되고.
SELECT HOST
,LOWER_PORT
,UPPER_PORT
,ACL
,ACLID
FROM DBA_NETWORK_ACLS;
아래는 네트워크 엑세스 추가할때 쓰는 패키지
BEGIN
DBMS_NETWORK_ACL_ADMIN.assign_acl ( acl => 'acl_scott.xml', host => 'mail.********.nl', lower_port => 25, upper_port => NULL); COMMIT;
'Oracle > Oracle 오류기타' 카테고리의 다른 글
이관찌꺼기 DROP (0) | 2013.11.18 |
---|---|
설치된 oracle 패치 정보 리스트 (0) | 2013.10.14 |
ADDM 비활성 , 활성 (0) | 2013.10.01 |
Private strand flush not complete (0) | 2013.09.27 |
Active Session History (ASH) performed an emergency flush (0) | 2013.09.27 |