WindowsServer [Windows 2012] CDO.Message 메일발송
페이지 정보
본문
관련강좌
[윈도우2000] CDONTS.NewMail 이용 메일발송
[윈도우2003] CDO.Message 메일발송
[윈도우2008] CDO.Message 메일발송
[윈도우2012] CDO.Message 메일발송
1. 먼저 SMTP가 설치되어 있는지 확인 하자
서버관리자에 들어가서 기능요약 부분에 SMTP 서버 항목이 있는지 확인
없다면 기능 추가를 통해서 SMTP 서버를 설치
2. 코드
보통 CDO.Message 객체만 생성해서 보낼 경우 아래와 같은 오류가 발생합니다.
CDO.Message.1 오류 '80040220'
"SendUsing" 구성 값이 잘못되었습니다.
이런 경우 Configration 객체로 구성값을 구성합니다.
<%
'/////////////////////////////////////////////////
' 메일발송 모듈 2012
'/////////////////////////////////////////////////
dim mail_from, mail_to, mail_cc, mail_subject, mail_body, mail_type
dim objconf, Flds
mail_from = request("mail_from") ' 보내는 사람의 메일주소
mail_to = request("mail_to") ' 받는 사람의 메일주소
mail_cc = request("mail_cc") ' 참조
mail_bcc = request("mail_bcc") ' 숨은 참조
mail_subject = request("mail_subject") '메일의 제목
mail_body = request("mail_body") ' 메일 내용
mail_type = request("mail_type") ' 메일 형식 ( 0 : HTML , 1: text )
Set objMail = Server.CreateObject("CDO.Message") ' CDO 2.0(메일 보내기 컴포넌트 개체 생성)
objMail.From = mail_from ' 메일을 보내는 사람의 이메일 주소
objMail.To = mail_to ' 메일을 받는 사람의 이메일주소(여러사람일 경우는 ; 표시로 구분)
Set objconf = objMail.Configuration
Set Flds = objconf.Fields
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1 '1 (로컬 SMTP) / 2 (외부 SMTP)
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "127.0.0.1" ' 메일서버 IP 또는 메일서버 URL
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 '포트번호 gmail = 465
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "c:\Inetpub\mailroot\Pickup"
'외부SMTP 이용시 아래 주석제거
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpaccountname") = "계정이름" '계정이름
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendemailaddress") = "이메일" ' 발신메일
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpuserreplyemailaddress")= "이메일" ' 회신메일주소
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'cdoBasic
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "메일서버_아이디" '메일서버의 계정ID
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "메일서버_비밀번호" '메일서버의 계정 비밀번호
Flds.update
'SendUsing 관련 설정 끝
objMail.Cc = mail_cc ' 메일 참조
objMail.Bcc = mail_bcc ' 숨은 참조
objMail.Subject = mail_subject ' 메일 제목
'HTML 형식으로 보낼건지 결정
If mail_type = "0" Then
objMail.HTMLBody = mail_body
Else
objMail.TextBody = mail_body
End if
objMail.Send ' 메일 보내기 메소드(이부분이 보내는 부분)
Set objMail = Nothing
%>
코드는 위와 같으며, 위의 경우는 로컬 SMTP 서버를 이용해서 보내는 경우 일반적인 세팅방법입니다.
3. mailroot 폴더 권한 설정
위와 같이 했음에도 다음과 같은 에러가 발생할 수 있습니다.
CDO.Message.1 오류 '80070005'
액세스가 거부되었습니다.
이건 로컬 SMTP를 이용해 보내는 경우 Pickup 디렉토리를 이용하는데 폴더에 적절한 권한에 없어서 발생하는 에러입니다.
mailroot 폴더에 IIS_IUSRS 사용자그룹에 쓰기권한을 부여합니다.
위와 같이 하면 메일이 잘 발송될 것입니다
[윈도우2000] CDONTS.NewMail 이용 메일발송
[윈도우2003] CDO.Message 메일발송
[윈도우2008] CDO.Message 메일발송
[윈도우2012] CDO.Message 메일발송
1. 먼저 SMTP가 설치되어 있는지 확인 하자
서버관리자에 들어가서 기능요약 부분에 SMTP 서버 항목이 있는지 확인
없다면 기능 추가를 통해서 SMTP 서버를 설치
2. 코드
보통 CDO.Message 객체만 생성해서 보낼 경우 아래와 같은 오류가 발생합니다.
CDO.Message.1 오류 '80040220'
"SendUsing" 구성 값이 잘못되었습니다.
이런 경우 Configration 객체로 구성값을 구성합니다.
<%
'/////////////////////////////////////////////////
' 메일발송 모듈 2012
'/////////////////////////////////////////////////
dim mail_from, mail_to, mail_cc, mail_subject, mail_body, mail_type
dim objconf, Flds
mail_from = request("mail_from") ' 보내는 사람의 메일주소
mail_to = request("mail_to") ' 받는 사람의 메일주소
mail_cc = request("mail_cc") ' 참조
mail_bcc = request("mail_bcc") ' 숨은 참조
mail_subject = request("mail_subject") '메일의 제목
mail_body = request("mail_body") ' 메일 내용
mail_type = request("mail_type") ' 메일 형식 ( 0 : HTML , 1: text )
Set objMail = Server.CreateObject("CDO.Message") ' CDO 2.0(메일 보내기 컴포넌트 개체 생성)
objMail.From = mail_from ' 메일을 보내는 사람의 이메일 주소
objMail.To = mail_to ' 메일을 받는 사람의 이메일주소(여러사람일 경우는 ; 표시로 구분)
Set objconf = objMail.Configuration
Set Flds = objconf.Fields
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1 '1 (로컬 SMTP) / 2 (외부 SMTP)
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "127.0.0.1" ' 메일서버 IP 또는 메일서버 URL
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 '포트번호 gmail = 465
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "c:\Inetpub\mailroot\Pickup"
'외부SMTP 이용시 아래 주석제거
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpaccountname") = "계정이름" '계정이름
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendemailaddress") = "이메일" ' 발신메일
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpuserreplyemailaddress")= "이메일" ' 회신메일주소
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'cdoBasic
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "메일서버_아이디" '메일서버의 계정ID
'Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "메일서버_비밀번호" '메일서버의 계정 비밀번호
Flds.update
'SendUsing 관련 설정 끝
objMail.Cc = mail_cc ' 메일 참조
objMail.Bcc = mail_bcc ' 숨은 참조
objMail.Subject = mail_subject ' 메일 제목
'HTML 형식으로 보낼건지 결정
If mail_type = "0" Then
objMail.HTMLBody = mail_body
Else
objMail.TextBody = mail_body
End if
objMail.Send ' 메일 보내기 메소드(이부분이 보내는 부분)
Set objMail = Nothing
%>
코드는 위와 같으며, 위의 경우는 로컬 SMTP 서버를 이용해서 보내는 경우 일반적인 세팅방법입니다.
3. mailroot 폴더 권한 설정
위와 같이 했음에도 다음과 같은 에러가 발생할 수 있습니다.
CDO.Message.1 오류 '80070005'
액세스가 거부되었습니다.
이건 로컬 SMTP를 이용해 보내는 경우 Pickup 디렉토리를 이용하는데 폴더에 적절한 권한에 없어서 발생하는 에러입니다.
mailroot 폴더에 IIS_IUSRS 사용자그룹에 쓰기권한을 부여합니다.
위와 같이 하면 메일이 잘 발송될 것입니다
댓글목록
등록된 댓글이 없습니다.