Click or drag to resize

VBScript 대량 발송 예제

메일 주소가 포함된 테이블을 읽은 후 다량의 메일을 발송하는 예제 소스 코드입니다.

Option Explicit

'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3

'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4

'---- CommandTypeEnum Values ----
Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004
Const adCmdFile = &H0100
Const adCmdTableDirect = &H0200

'---- StreamTypeEnum Values ----
Const adTypeBinary = 1
Const adTypeText = 2

Dim conn, rs
'메일 주소가 저장되어 있는 데이터베이스를 오픈해 발송할 메일 주소를 읽습니다.
Set conn =  CreateObject("ADODB.Connection")
conn.Open "PROVIDER=SQLOLEDB;Data Source=MAIN;Initial Catalog=MyDatabase;User ID=;Password=;"
Set rs = conn.Execute("SELECT email, name FROM dbo.tgmail")
'읽은 모든 메일 주소에 대해 메일을 발송합니다.
Call SimpleMail(rs)
rs.Close
conn.Close

Sub SimpleMail(tgRs)
    Dim conn, rs
    Dim fromName, fromAddr, toName, toAddr, subject, htmlbody, charset, schedule

    'TABSMAILER4 데이터베이스를 오픈합니다.
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "PROVIDER=SQLOLEDB;Data Source=192.168.1.191\TABSMAILER4,18895;Initial Catalog=TabsMailer4;User ID=sa;Password=!q7hfnl3sh62@;"

    'SendMessage 테이블을 오픈합니다.
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open "SendMessage", conn, adOpenDynamic, adLockPessimistic, adCmdTable

    fromName = "기술지원"
    fromAddr = "help@tabslab.com"
    charset = "euc-kr"

   '메일 발송 레코드를 생성해 추가합니다.
    Do While Not tgRs.EOF        
        toName = tgRs("name")
        toAddr = tgRs("email")
        subject = toName & "님 안녕하세요."
        htmlbody = "<html><body><h1>테스트 메일입니다.</h1></body></html>"        
        schedule = Now

        rs.AddNew
        rs.Fields("sm_fromname").Value = fromName
        rs.Fields("sm_fromaddr").Value = fromAddr
        rs.Fields("sm_toname").Value = toName
        rs.Fields("sm_toaddr").Value = toAddr
        rs.Fields("sm_subject").Value = subject
        rs.Fields("sm_htmlbody").Value = htmlbody
        rs.Fields("sm_charset").Value = charset
        rs.Fields("sm_schedule").Value = schedule
        rs.Update

        tgRs.MoveNext
    Loop

    rs.Close
    conn.Close
End Sub