본문 바로가기
TechNical/Windows

Windows 2003 Server의 SMTP 메일서버에서 CDONTS 객체 사용하기

by 강멍멍이 2007. 11. 11.
반응형
웹 서버를 Windows 2000 Server 환경에서 윈도우 2003 서버로 옮겨 타는 경우에 발생하는 문제이다.



■ 문제의 원인

윈도우 2000에서 윈도우 2003 서버로 갈아 타고 소스 카피 다 하고 APP설치 다 해주고 설정도 살짝 바꿔주고
SMTP 메일서버를 설치한 후에 메일 발송 테스트를 했는데 메일이 안 날아 갈 수가 있다.
웹 소스는 2000 서버에 적용했던 걸 그대로 썼기 때문에 발생 할 수 있는 문제다.

소스 코드를 찬찬히 들여다 보면 CDONTS 객체를 사용한 걸 발견 할 수도 있다.
CDONTS 는 Windows 2000 서버 까지만 지원해 주었던 거다.
Windows 2003 서버로 넘어 오면서 CDONTS 대신에 CDO 객체를 사용하게 됐다.

CDONTS를 사용한 소스에서는 아래와 같이 선언하는 부분이 있을 것이다.

Set ObjCDO = Server.CreateObjects("CDONTS.NewMail")

그러나 CDO를 사용하면 이렇게 살짝 바뀌게 된다.

Set ObjCDO = Server.CreateObjects("CDO.Message")

근데 사실 해 보지는 않았다..... 알잖아.. 케이군은 게으르다 =ㅠ=;;;;


■ 해결 방법

소스 코드를 고쳐야 되는데.. 사실상 그게 꽤나 귀찮고 짜증나는 문제이다
고로.. 소스를 그대로 가면서 CDONTS 를 사용하는 방법을 알아 보자.
뭘 별거는 아니다. 파일 하나 복사해서 붙여넣는거 뿐이다.


1. 메일이 잘 날라가던 Windows 2000 서버의 winnt/system32/cdonts.dll 파일을 복사한다.

2. 복사한 파일을 Windows 2003 서버의 windows/system32 폴더에 붙여 넣는다.

3. 시작 > 실행 에서 DLL을 등록 시킨다.
    regsvr32 cdonts.dll
    "cdonts.dll 의 DLLRegisterServer 성공" 이라는 메시지창이 뜨면 성공이다.


이제 메일이 잘 날라가나 테스트를 해 보자.
그래도 안 되면? ... 나도 몰라 -_- 쓰지마!!!
반응형

댓글