달력

09

« 2017/09 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

모니터링을 위해서 주기적으로 메일이 발송되도록 하는작업을 함.

(인터넷을 뒤져봐서 되는것과 함께 [한글]처리하는것 포함해서 처리한것)

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;


신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설