메뉴 건너뛰기

Dev tips

http://savour.tistory.com/268

윈도우 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("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort ' 서버 접근방법을 설정합니다
.item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmartHost ' 서버 주소를 설정합니다
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 ' 접근할 포트번호를 설정합니다
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 ' 접속시도할 제한시간을 설정합니다
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 ' SMTP 접속 인증방법을 설정합니다
.item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "아이디" ' SMTP 서버에 인증할 ID를 입력합니다
.item("http://schemas.microsoft.com/cdo/configuration/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을 복사한 후에 아래의 명령어로 레지스트리에 등록한다

regsvr32.exe cdonts.dll