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