by Sibnt [PL/SQL] 오라클 메일 UTL_ENCODE [2016.04.27 18:38:46]
오라클에서 메일을 보내는 프로시저를 통해 메일링 PACKAGE를 하나 만들었는데,
그 메일링에서 가끔 . 이 빠지는 현상이 있어서 살펴보다가 궁금한점이 있어서 이렇게 여기에 글을 올립니다.
UTL_SMTP.WRITE_RAW_DATA(V_CON, UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(V_MESSAGE)));
여기에서 UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(V_MESSAGE));
잘은 모르겠지만 메일을 보내기 위해 ENCODE 하는 것 같은데
. 을 QUOTED_PRINTABLE_ENCODE 하면 2E 가 되는데,
. 이 빠지는 쪽을 살펴보니 2E앞에 3D0D0A가 붙어있었습니다. ( 3D0D0A2E )
DBMS_OUTPUT으로 이렇게 저렇게 찍어보니,
3D0D0A 는 아무값도 없는것 같고(null)
2E나 3D0D0A2E나 TUL_RAW.CAST_TO_VARCHAR2(QUOTED_PRINTABLE_DECODE(______)) 로 DBMS_OUTPUT으로 찍어보면 똑같이 . 이 나왔습니다.
3D0D0A2E 으로 넘어간 .은 사라지고 2E로 넘어간 .은 정상적인것 같아서..
3D0D0A2E는 메일을 받는 쪽에서 해석하지 못하는것은 아닌가..... 이렇게 생각만 했는데..
UTL_ENCODE라는 패키지도 잘 모르고... 전체 흐름을 잘 모르다 보니....이렇게 두서없이 적어보네요...
어떤경우에 3D0D0A 가 붙는 것인지.. 그리고 이런경우 어떻게 처리를 해야할지..
(저는 그냥 단순하게.. REPLACE로.. '3D0D0A2E' 를 '2E'로 바꾸어주었습니다.)
혹시 동일한 경험을 해보신 분이나.. 이것 관련해서 설명해주실수 있는 분 ... 답변 부탁드려요 ^^;