Classic ASP에서 CDO를 사용하여 이메일 발송하기
Classic ASP에서 이메일 발송 기능은 웹 애플리케이션에서 사용자에게 알림, 회원 가입 인증, 비밀번호 찾기 등 다양한 목적으로 활용됩니다. 이메일 발송을 위해 Classic ASP에서는 Collaboration Data Objects (CDO) 라이브러리를 사용할 수 있습니다. CDO는 마이크로소프트에서 제공하는 객체 지향 인터페이스로 이메일 메시지를 생성하고 전송하는 데 사용됩니다.
1. CDO 라이브러리를 사용하여 메일 발송
CDO를 사용하기 위해서는 먼저 메일 발송에 필요한 설정 값을 구성해야 합니다. 이 설정 값들은 메일 서버, 포트 번호, 연결 시간 등을 포함하며 필요에 따라 사용자 정의 헤더를 추가할 수도 있습니다.
▼ 예제 코드
<%
' 응답 만료 시간 및 인코딩 설정
Response.Expires = 0
Response.CharSet = "euc-kr"
' 에러 처리 설정
On Error Resume Next
Err.Clear
' 메일 발송 관련 변수 설정
Dim sendFrom, sendTo, sendSubject, sendMailBody
Dim objMail, MailConfig
sendFrom = "BlueShare@BlueShare.tistory.com"
sendTo = "BlueShare@BlueShare.tistory.com"
sendSubject = "메일 발송 테스트"
sendMailBody = "<h1>메일 본문 입니다.</h1>"
' 메일 객체 생성
Set objMail = Server.CreateObject("CDO.Message")
Set MailConfig = objMail.Configuration
With MailConfig
' 메일 발송 설정
'1:로컬(smtp) 2:외부(smtp)
Fields.item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'호스트설정
Fields.item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.10.10.10"
'SMTP Port
Fields.item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'연결시간
Fields.item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
' 사용자 정의 헤더 추가 필요시 (샘플)
Fields.Item("urn:schemas:mailheader:X-Custom-Header") = "Sensitivity: personal"
' 설정 업데이트
Fields.Update
End With
' MailConfig 객체 해제
Set MailConfig = Nothing
' 메일 정보 설정
objMail.From = sendFrom
objMail.To = sendTo
objMail.Subject = sendSubject
objMail.HTMLBody = sendMailBody
' 메일 발송
objMail.send
' 메일 객체 해제
Set ObjMail = Nothing
' 에러 체크 및 결과 출력
If Err.Number <> 0 Then
Response.write "메일 발송 에러"
Else
Response.write "메일 발송 성공"
End if
%>
☞ 다음과 같은 과정으로 이메일을 발송합니다.
- 응답 만료 시간 및 인코딩을 설정합니다.
- 에러 처리를 설정합니다.
- 메일 발송에 필요한 변수를 선언하고 초기화합니다.
- 메일 객체를 생성하고, 발송 설정을 지정합니다.
- 메일 정보(발신자, 수신자, 제목, 본문)를 설정합니다.
- 메일을 발송하고 발송 결과를 확인합니다. 발송에 성공하면 “메일 발송 성공”이라는 메시지를 출력하고 실패한 경우 “메일 발송 에러” 메시지를 출력합니다.
2. 주의사항 및 환경에 따른 발송 제한
CDO를 사용하여 이메일을 발송할 때 몇 가지 주의사항이 있습니다.
- 발송 제한: 메일 서버에서 일정 시간 동안 발송 가능한 이메일 수에 제한이 있을 수 있으므로 이를 확인해야 합니다.
- 스팸 필터: 발송된 이메일이 수신자의 스팸 폴더로 분류될 수 있으므로 이를 방지하기 위한 추가 작업이 필요할 수 있습니다.
3. 추가적인 기능 구현(HTML 메일 본문, 첨부 파일 등)
CDO 라이브러리를 사용하여 다양한 추가 기능을 구현할 수 있습니다.
- HTML 메일 본문: objMail.HTMLBody 속성을 사용하여 HTML 형식의 이메일 본문을 작성할 수 있습니다.
- 첨부 파일: objMail.AddAttachment 메서드를 사용하여 이메일에 파일을 첨부할 수 있습니다.
이 외에도 CDO 라이브러리를 사용하여 이메일 발송에 관련된 다양한 작업을 수행할 수 있습니다.
이 글이 도움이 되셨다면 공유를 부탁 드립니다. 다음 글에서 뵙겠습니다!
관련 이전 게시글
Classic ASP에서 XMLHTTP를 사용한 JSON 통신: 예제 코드 및 구현 방법