이제 남은 것은 제출된 폼 데이터를 처리하는 것 뿐이다. 시작 부분에 언급한 것처럼, Windows NT Server의 Collaboration Data Object (CDONTS)를 이용하여 이메일을 통해 그 데이터를 전송할 것이다.

하지만 CDONTS를 사용하기 전에 우선 그것이 무엇인지를 알아야만 한다. 어떤 Microsoft 문서 자료에서는 Collaboration Data Object를 다음과 같이 설명한다.

“CDONTS는 웹 기반의 어플리케이션에 메시징 기능을 제공하기 위해 특별히 디자인된 Simple Mail Transfer Protocol(SMTP)를 위한 특별한 OLE 서버이다.”

마이크로소프트에 익숙하지 않은 사람은, CDONTS가 웹 페이지와 SMTP 서버 사이의 중개인 역할을 수행하는 것으로서 (이 폼과 같은) 웹에서 이메일을 통해 누군가에게 데이터를 전송하는 통신을 가능하게 하는 것으로 이해하면 된다.

CDONTS는 아주 강력하며 기능도 많지만 여기서는 간단히 다루고, 이 페이지의 끝부분에 CDONTS에 대한 다른 강좌 몇 개의 링크를 제공할 것이다. 무엇보다도 먼저 CDONTS와 같은 서버 객체를 사용할 때마다 그것의 인스탄스를 실행시킬(또는 보다 간단하게 말해서 그것을 사용할 수 있게 만들) 필요가 있다. 지금까지 만든 폼 핸들링 코드에 몇 줄을 추가하면 그렇게 만들 수 있다. CDONTS를 위한 코드는 다음 예에서 모두 라인 단위로 설명하도록 하겠다.







<%
if Request.Querystring("isSubmitted") = "yes" then

Dim fname, lname
Dim objCDO

fname = Request.Querystring("First_Name")
lname = Request.Querystring("Last_Name")

"Here is where we insert new code to invoke CDONTS

"This line invokes the object using the name objCDO
Set objCDO = Server.CreateObject("CDONTS.NewMail")

objCDO.From = "corinth@enfused.com" "That"s me :)
objCDO.To = "youremail@domain.com"
objCDO.Cc = "someoneimportant@whitehouse.gov, buycheese@cheese.com"
objCDO.Bcc = "bgates@microsoft.NET"
objCDO.Subject = "Submitted form data from my page"
objCDO.Body = "Name: " & fname & " " & lname

objCDO.BodyFormat = 1
objCDO.MailFormat = 1

objCDO.Send

"Notice that response.write changed to ConfirmMsg =
"I will explain why in just a little while.

ConfirmMsg = "Thanks for submitting your name!"
end if
%>



이제 한 줄씩 살펴보기만 하면 무엇이 일어나는지 정확하게 알 수 있을 것이다. 불러낸 객체의 메쏘드 또는 프로퍼티를 참조하려 할 때마다 지정한 이름을 사용해야 한다는 것을 기억해두자(이 예에서는 아래에서 보여주는 것처럼 마침표가 뒤에 붙는 objCDO임). (주의: 이 값들이 모두 Send 명령 앞에만 있다면 순서는 상관없다)

먼저 From은 이메일을 보내는 사용자의 이메일 주소로서, 문자열이다. 일단은 이것을 이메일 주소로 지정하자. 일반적으로 사용자에게 이 필드를 채우게 하는 것이 좋을 것이다. 그것을 어떻게 제공하는지는 이 글의 끝에서 보여주겠다. 하지만 이제까지 다루었던 것을 잘 이해하고 있나 확인하는 차원에서 먼저 스스로 해보기를 권장한다.






objCDO.From = "corinth@enfused.com" "That"s me :)


팁: 필자에게 스팸 메일을 보내지 마라. 스팸 외 모든 합법적인 이메일 ? 질문, 코멘트 또는 비판은 환영한다. 그러나 필자는 바쁜 사람이며 즉각 회신할 수는 없다는 것을 기억해 주기 바란다.

To는 의도한 수신자의 이메일 주소이다. 이 필드를 제작자 자신(바로 독자)의 이메일 주소(들)로 작성해라. 다중 이메일인 경우에는 콤마로 구분한다(사실 다른 필드에서도 마찬가지이다). 이 필드들은 모두 문자열 값들을 가져야 하므로 인용 기호를 빠뜨려서는 안된다.






objCDO.To = "youremail@domain.com"


CC, BCC는 전달하고 싶은 임의의 참조인(Carbon Copies 또는 Blind Carbon Copies)의 이메일 주소들이다.






objCDO.Cc = "someoneimportant@whitehouse.gov, buycheese@cheese.com"
objCDO.Bcc = "bgates@microsoft.NET"


Subject는 이메일의 주제로 보이게 지정한 임의의 문자열이다.






objCDO.Subject = "Submitted form data from my page"


Body는 메시지의 본문 또는 주요 컨텐츠이다. 이메일로 전송될 수 있기만 하다면 원하는 무엇이든 문자열 포맷으로 여기에 쓸 수 있다. 바로 여기에 변수를 위치시키고 전송할 것이다.






objCDO.Body = "Name: " & fname & " " & lname


팁: 위의 코드는 ASP와 CDONTS의 중요하면서도 강력한 기본 원소를 예로 보여주는데, 디자이너는 고정된 문자열을 사용하는 대신에 이러한 CDONTS 속성에 대한 변수에 지정할 수 있다. 이 기능을 이용하면 디자이너의 역량이 확장되므로 창조적으로 작업할 수 있다. 문자열 변수를 이용하여 생활을 보다 편리하게 만들어보기 바란다. 아마도 주제 폼 필드도 만들 수 있을 것이므로 사용자에게 자신의 주제를 제출하게 할 수도 있다.

다음 두 프로퍼티는 전송될 이메일의 타입이 HTML인지 아니면 단순한 텍스트인지를 결정한다. 여기에서는 편의상 메시지를 단순한 텍스트로 보낼 것이다. HTML로 전송하고 싶으면 이 변수들을 0으로 변경하고 Body 문자열을 HTML 코드로 작성하면 된다.






objCDO.BodyFormat = 1
objCDO.MailFormat = 1


마지막으로 코드의 끝부분은 실제로 서버에게 메시지를 전송하라고 알린다.






objCDO.Send


Response.Write 대신 ConfirmMsg = 를 사용한 조그마한 트릭이 있는데, 그것은 확인 메시지를 좀 더 좋게 포맷하기 위해 사용되었다. ConfirmMsg 변수를 이용하여 무엇을 할 것인지는 전체 페이지에 대한 마지막 손질을 할 때 보여줄 것이다.

여기까지가 이 페이지에서 다루려 했던 CDONTS에 대한 모든 것이다. 코딩 과정을 돕기 위해 간편한
CDONTS 참고 테이블을 만들었으니 참고하기 바란다.

CDONTS 링크
ASP Today: CDONTS 세팅 및 사용하기
15 Seconds: CDO를 이용하여 HTML 전송하기
15 Seconds: Collaboration Data Object와 IIS 4.0
Power ASP: CDONTS 컴포넌트 사용하기… (attachments 포함)
ASP Watch: CDONTS를 이용하여 이메일 보내기
Microsoft CDONTS 문서 자료
2009/05/26 13:38 2009/05/26 13:38

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다