윈도우 2003에서 ASP의 CDONTS.NewMail을 이용한 메일 보내기

    윈도우 2000에서 CDONTS.NewMail을 이용해 메일을 보내던 기능이 윈도우 2003으로 버전업 하고나서 오류를 발생하고는 작동하지 않는다.

    윈도우 2003은 CDONTS.NewMail대신 CDO.Message를 이용해서 메일 발송이 가능하다.
    CDO.Message를 이용해 메일을 발송하려면 일단 SMTP서비스를 설치해서 기동되어 있어야 한다.
    그후 코딩은 아래를 참고하면 된다.


    Const cdoSendUsingPort = 2 '1일 경우 로컬(SMTP), 2일 경우 외부(SMTP)로 메일전송
    Const strSmartHost = "xxx.xxx.xxx.xxx" '보낼 메일 Host Server 설정

    Set objMail = Server.CreateObject("CDO.Message") '메일 객체생성 
    Set objConf = objMail.Configuration 'Configuration 설정값을 저장할 objConf 객채 생성

    With objConf.Fields
       .item("sendusing") = cdoSendUsingPort ' 서버 접근방법을 설정합니다
       .item("smtpserver") = strSmartHost ' 서버 주소를 설정합니다
       .Item("smtpserverport") = 25  ' 접근할 포트번호를 설정합니다
       .Item("smtpconnectiontimeout") = 30 ' 접속시도할 제한시간을 설정합니다
       .Item("smtpauthenticate") = 1  ' SMTP 접속 인증방법을 설정합니다
       .item("sendusername") = "아이디" ' SMTP 서버에 인증할 ID를 입력합니다
       .item("sendpassword") = "암호"  ' SMTP 서버에 인증할 암호를 입력합니다
       .Update
    End With

      objMail.from = 메일주소  '보내는이 메일
      objMail.To= 메일주소  '받는사람 Email

      objMail.subject = "제목 들어가는곳"

      objMail.HTMLBody = "HTML형식의 Body 들어가는곳. HTMLBody나 TextBody 둘중 하나를 선택"
      objMail.TextBody = "TEXT형식의 Body 들어가는곳. HTMLBody나 TextBody 둘중 하나를 선택"
    혹은
      objMail.Body = "내용"
      objMail.BodyFormat = 0 ' CdoBodyFormatHTML(0)는 HTML, CdoBodyFormatText(1)는 Text
     

      objMail.BodyPart.Charset="ks_c_5601-1987"     ' 한글을 위해선 꼭 넣어 주어야 합니다.
      objMail.HTMLBodyPart.Charset="ks_c_5601-1987" ' 한글을 위해선 꼭 넣어 주어야 합니다.

      objMail.Importance = 2 ' 우선순위 CdoLow(0)은 낮게, CdoNomal(1)은 중간, CdoHigh(2)은 높게
      objMail.Attachfile "파일패스", "파일명", 엔코딩방식 ' 첨부파일 엔코딩방식 : CdoEncodingUUencode(0)은 Ascii파일, CdoEncodingBase64(1)은 Binary파일

      objMail.send  ' 메일을 보냅니다. 
     Set objConf = Nothing ' 설정값 객체를 닫습니다.
     Set objMail = Nothing ' 메일 객체를 닫습니다.



    하지만 소스를 수정하지 않고 CDONTS.NewMail을 이용한 기존의 소스를 그대로 쓸수도 있다.
    아래의 첨부된 cdonts.dll 파일을 다운받아서
    C:\WINDOWS\system32 경로에 cdonts.dll을 복사한 후에 아래의 명령어로 레지스트리에 등록한다

    invalid-file

    regsvr32.exe cdonts.dll

    Posted by 부니기