ClassicASP [윈도우2000] CDONTS.NewMail 이용 메일발송
페이지 정보
본문
[윈도우2000] CDONTS.NewMail 이용 메일발송
[윈도우2003] CDO.Message 메일발송
[윈도우2008] CDO.Message 메일발송
[윈도우2012] CDO.Message 메일발송
실제로 ASP로 웹 어플리케이션을 개발하다 보면 메일 발송은 기본이다.
CDONTS를 이용해서 웹 서버가 SMTP서버의 기능까지 하는것은 기본적인 메일링 코딩 방법이다.
Sample소스가 여기 저기 많이 있고 기능 구현이 쉽기 때문이다.
그러나 사이트의 사용가가 많아지고 메일 발송이 많아지면 그만큼 ASP WEB서버도 메일 발송을 위한
트래픽이 증가하게된다.
그러면 웹서버가 SMTP서버가 되지않고 Outlook Express와 같은 메일 클라이언트만 될 수 없을까?
다음의 소스코드는 그러한 기능을 충족시켜주는 COM+ 코드이다.
가장 보내는 기능이 좋은 Qmail Server를 가지고 있는 개발자라면 응용해보는것도 괜찮지 않을까?
물론 SMTP서비스는 설치하지 않아도 작동한다.
PS
작년 이맘때 개발해서 제가 운영하는 사이트에서 일년정도 안정적으로 사용하고있는 소스입니다.
보내는 메일서버는 Linux Qmail Server이고 VB COM+ Class소스입니다.
10분정도에게 소스를 드렸는데... 오늘은 2분이 한꺼번에 달라고 하셔서 이렇게 강좌를 올립니다.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 "True
Persistable = 0 "NotPersistable
DataBindingBehavior = 0 "vbNone
DataSourceBehavior = 0 "vbNone
MTSTransactionMode = 1 "NoTransaction
END
Attribute VB_Name = "SendHappyMail"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Implements ObjectControl
Private Const OBJECT_NAME As String = "ManageOrder.SendMail"
Private Type typeThis
objCtx As ObjectContext
End Type
Private Const MAILHEADER = "<html>..." '메일전문에 추가할 HTML 메일 해더
Private Const MAILFOOTER = "...</html>" '메일 보디 끝에 내려갈 내용
Private m As typeThis
Private Sub ObjectControl_Activate()
Set m.objCtx = GetObjectContext()
End Sub
Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = True
End Function
Private Sub ObjectControl_Deactivate()
Set m.objCtx = Nothing
End Sub
Public Function sendMail(ByVal strSenderAdd As String, ByVal strSenderName As String, _
ByVal strReceiverAdd As String, ByVal strReceiverName As String, _
ByVal strCCAdd As String, ByVal strBccAdd As String, _
ByVal strSubject As String, ByVal strMailBody As String) As Boolean
'메일을 보낸다 CDO2000을 이용한다.
Dim objCDOConfiguration As CDO.Configuration
Dim objFields As ADODB.Fields
Dim objCDOMessage As CDO.Message
On Error GoTo Err
Set objCDOConfiguration = CreateObject("CDO.Configuration")
Set objFields = objCDOConfiguration.Fields
objFields(cdoSendUsingMethod) = CDO.cdoSendUsingPort
objFields(cdoSMTPServer) = "mail.myurl.com" '보내는 SMTP서버의 주소
objFields(cdoSMTPServerPort) = 25
objFields(cdoSMTPConnectionTimeout) = 30
objFields(cdoSMTPAccountName) = "정재성"
'보내는 사람의 신상명세 메일의 Sender와는 다르다.
objFields(cdoSendUserName) = "aspilla"
'보내는 사람의 SMTP Server 로그온 계정(만약에 MS의 SMTP를 이용한다면 설정안해도 됨
objFields(cdoSendPassword) = "****" "페스워드
objFields(cdoMessageStatus) = CDO.cdoLow
objFields.Update
Set objCDOMessage = CreateObject("CDO.Message")
Set objCDOMessage.Configuration = objCDOConfiguration
With objCDOMessage
.From = """" & strSenderName & """" & "<" & strSenderAdd & ">" '받는사람
.To = """" & strReceiverName & """" & "<" & strReceiverAdd & ">" '보내는 사람
If Len(strCCAdd) > 0 Then
.CC = strCCAdd
End If
If Len(strBccAdd) > 0 Then
.BCC = strBccAdd
End If
.Subject = strSubject
.HTMLBody = MAILHEADER & strMailBody & MAILFOOTER
.Send
End With
Set objCDOMessage = Nothing
Set objFields = Nothing
Set objCDOConfiguration = Nothing
sendMail = True
m.objCtx.SetComplete
Exit Function
Err:
If Not objCDOMessage Is Nothing Then
Set objCDOMessage = Nothing
End If
If Not objFields Is Nothing Then
Set objFields = Nothing
End If
If Not objCDOConfiguration Is Nothing Then
Set objCDOConfiguration = Nothing
End If
m.objCtx.SetAbort
sendMail = False
End Function
[출처] 민우아빠[사가]의 잼있는세상 ( http://saga21.net/316 )
[윈도우2003] CDO.Message 메일발송
[윈도우2008] CDO.Message 메일발송
[윈도우2012] CDO.Message 메일발송
실제로 ASP로 웹 어플리케이션을 개발하다 보면 메일 발송은 기본이다.
CDONTS를 이용해서 웹 서버가 SMTP서버의 기능까지 하는것은 기본적인 메일링 코딩 방법이다.
Sample소스가 여기 저기 많이 있고 기능 구현이 쉽기 때문이다.
그러나 사이트의 사용가가 많아지고 메일 발송이 많아지면 그만큼 ASP WEB서버도 메일 발송을 위한
트래픽이 증가하게된다.
그러면 웹서버가 SMTP서버가 되지않고 Outlook Express와 같은 메일 클라이언트만 될 수 없을까?
다음의 소스코드는 그러한 기능을 충족시켜주는 COM+ 코드이다.
가장 보내는 기능이 좋은 Qmail Server를 가지고 있는 개발자라면 응용해보는것도 괜찮지 않을까?
물론 SMTP서비스는 설치하지 않아도 작동한다.
PS
작년 이맘때 개발해서 제가 운영하는 사이트에서 일년정도 안정적으로 사용하고있는 소스입니다.
보내는 메일서버는 Linux Qmail Server이고 VB COM+ Class소스입니다.
10분정도에게 소스를 드렸는데... 오늘은 2분이 한꺼번에 달라고 하셔서 이렇게 강좌를 올립니다.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 "True
Persistable = 0 "NotPersistable
DataBindingBehavior = 0 "vbNone
DataSourceBehavior = 0 "vbNone
MTSTransactionMode = 1 "NoTransaction
END
Attribute VB_Name = "SendHappyMail"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Implements ObjectControl
Private Const OBJECT_NAME As String = "ManageOrder.SendMail"
Private Type typeThis
objCtx As ObjectContext
End Type
Private Const MAILHEADER = "<html>..." '메일전문에 추가할 HTML 메일 해더
Private Const MAILFOOTER = "...</html>" '메일 보디 끝에 내려갈 내용
Private m As typeThis
Private Sub ObjectControl_Activate()
Set m.objCtx = GetObjectContext()
End Sub
Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = True
End Function
Private Sub ObjectControl_Deactivate()
Set m.objCtx = Nothing
End Sub
Public Function sendMail(ByVal strSenderAdd As String, ByVal strSenderName As String, _
ByVal strReceiverAdd As String, ByVal strReceiverName As String, _
ByVal strCCAdd As String, ByVal strBccAdd As String, _
ByVal strSubject As String, ByVal strMailBody As String) As Boolean
'메일을 보낸다 CDO2000을 이용한다.
Dim objCDOConfiguration As CDO.Configuration
Dim objFields As ADODB.Fields
Dim objCDOMessage As CDO.Message
On Error GoTo Err
Set objCDOConfiguration = CreateObject("CDO.Configuration")
Set objFields = objCDOConfiguration.Fields
objFields(cdoSendUsingMethod) = CDO.cdoSendUsingPort
objFields(cdoSMTPServer) = "mail.myurl.com" '보내는 SMTP서버의 주소
objFields(cdoSMTPServerPort) = 25
objFields(cdoSMTPConnectionTimeout) = 30
objFields(cdoSMTPAccountName) = "정재성"
'보내는 사람의 신상명세 메일의 Sender와는 다르다.
objFields(cdoSendUserName) = "aspilla"
'보내는 사람의 SMTP Server 로그온 계정(만약에 MS의 SMTP를 이용한다면 설정안해도 됨
objFields(cdoSendPassword) = "****" "페스워드
objFields(cdoMessageStatus) = CDO.cdoLow
objFields.Update
Set objCDOMessage = CreateObject("CDO.Message")
Set objCDOMessage.Configuration = objCDOConfiguration
With objCDOMessage
.From = """" & strSenderName & """" & "<" & strSenderAdd & ">" '받는사람
.To = """" & strReceiverName & """" & "<" & strReceiverAdd & ">" '보내는 사람
If Len(strCCAdd) > 0 Then
.CC = strCCAdd
End If
If Len(strBccAdd) > 0 Then
.BCC = strBccAdd
End If
.Subject = strSubject
.HTMLBody = MAILHEADER & strMailBody & MAILFOOTER
.Send
End With
Set objCDOMessage = Nothing
Set objFields = Nothing
Set objCDOConfiguration = Nothing
sendMail = True
m.objCtx.SetComplete
Exit Function
Err:
If Not objCDOMessage Is Nothing Then
Set objCDOMessage = Nothing
End If
If Not objFields Is Nothing Then
Set objFields = Nothing
End If
If Not objCDOConfiguration Is Nothing Then
Set objCDOConfiguration = Nothing
End If
m.objCtx.SetAbort
sendMail = False
End Function
[출처] 민우아빠[사가]의 잼있는세상 ( http://saga21.net/316 )
댓글목록
등록된 댓글이 없습니다.