[Classic ASP] 메일보내기
ASP에서 메일을 보내는 경우 CDO.Message를 이용하여 보내야 한다.
사이트내에서 메일보내기는 대게 보내는 메일주소가 일정하므로 보내는 메일주소정보가 함수내 포함하도록 했다.
sendmail 함수내의 Const 부분을 환경에 맞게 수정하여 사용하면 된다.
사용시 중간부분의 "on error resume next" 부분을 주석으로 막고 테스트후 정상작동하는 경우 사용한다.
메일 발송시 보내지는 주소(SEND_USER_NAME)과 실제 메일주소(MAIL_FROM)가 동리하지 않아도 대부분 발송이 되지만 daum의 경우에는 이부분이 동일한지 확인하도록 되어있습니다. 사이트 이용자가 메일수신을 다음으로 하는 경우에 대비하여 되도록 일치하도록 하는 것이 좋습니다.
<%
'===============================
' use relay SMTP
'===============================
function SendMail( cSubject, cMailTo, cBody )
Const MAIL_FROM = "메일러(발송전용)<user@mailserver.com>"
Const SMTP_SERVER = "mail.mailserver.com"
Const SMTP_SERVER_PORT = 25
Const SEND_USER_NAME = "user@mailserver.com"
Const SEND_PASSWORD = "password"
Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSendUsingPort = 2 '== 1일 경우 로컬(SMTP), 2일 경우 외부(SMTP)로 메일전송
Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout = "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAccountName = "http://schemas.microsoft.com/cdo/configuration/smtpaccountname"
Const cdoSMTPAuthenticate = "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoBasic = 1
Const cdoSendUserName = "http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword"
on error resume next
dim oConfig ' As CDO.Configuration
dim oMessage ' As CDO.Message
dim oFields ' As ADODB.oFields
'== Get a handle on the config object and it's oFields
set oConfig = Server.CreateObject("CDO.Configuration")
set oFields = oConfig.Fields
'== set config oFields we care about
with oFields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = SMTP_SERVER
.Item(cdoSMTPServerPort) = SMTP_SERVER_PORT
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSendUserName) = SEND_USER_NAME
.Item(cdoSendPassword) = SEND_PASSWORD
.Update
end with
set oMessage = Server.CreateObject("CDO.Message")
set oMessage.Configuration = oConfig
with oMessage
.To = cMailTo
.From = MAIL_FROM
.Subject = cSubject
.HTMLBody = cBody
.Send
end With
set oMessage = nothing
set oFields = nothing
set oConfig = nothing
SendMail = null
end function
'=============================
' use local SMTP service
'=============================
function SendMailLocal( cSubject, cMailFrom, cMailTo, cBody )
dim oMessage, oConfig, oFields
set oConfig = Server.CreateObject("CDO.configuration")
set oFields = oConfig.Fields
oFields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
oFields.item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oFields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
oFields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "c:\Inetpub\mailroot\Pickup"
oFields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
oFields.update
set oMessage = Server.CreateObject("CDO.Message")
set oMessage.Configuration = oConfig
oMessage.from = cMailFrom
oMessage.to = cMailTo
oMessage.Subject = cSubject
oMessage.HtmlBody = cBody
oMessage.Send
set oMessage = nothing
set oFields = nothing
set oConfig = nothing
SendMailLocal = null
end function
%>
저작권자 © WDEV, 무단전재 및 재배포 금지

