예약메일 보내는 MSDN자료입니다.


요약
Windows NT Option Pack(NTOP) 및 Windows 2000은 SMTP(Simple Mail Transfer Protocol) 서비스를 기본적으로 설치하여 일반적으로 전자 메일 기반 HTML 양식 처리를 위한 ASP(Active Server Page)를 통해 이를 다양한 목적으로 사용할 수 있도록 합니다.
본 문서에서는 Windows Script Host(WSH) 및 SMTP 서비스의 CDONTS NewMail 개체의 전자 메일 기능을 사용하여 예약 메일 보내기를 만드는 절차를 설명합니다.
 

추가 정보
다음 예제에서는 메일 보내기를 위한 WSH 스크립트뿐만 아니라 메일 보내기를 위한 예약 작업 및 메일 내용을 업데이트할 수 있는 텍스트 파일의 작성을 단계별로 설명합니다.
예약 작업을 설정하는 첫 단계로 스케줄러 서비스가 실행 중인지 확인합니다.
작업 표시줄에서 시작, 설정을 차례로 누른 다음 제어판을 누릅니다.
제어판에서 서비스 애플릿을 두 번 누릅니다.
작업 스케줄러 서비스가 나올 때까지 아래로 스크롤합니다.
상태가 실행 중으로 표시되어 있는지 확인합니다.
시작이 자동으로 표시되어 있는지 확인합니다.
닫기를 눌러 서비스 애플릿을 종료하고 제어판을 닫습니다.
 

다음 내용의 텍스트 파일을 만들고 컴퓨터에 C:\Mailout.txt로 저장합니다.
<p>This is line 1.</p>
<p>This is line 2.</p>

 

WSH 스크립트를 만들어서 방금 만든 텍스트 파일을 읽습니다. 다음 코드를 복사하여 컴퓨터에 "C:\mailout.vbs"로 저장합니다. 보내는 사람/받는 사람을 사용자 지정하려면 strFrom 및 strTo 변수 값을 변경합니다.
'--------------------------------------------------------------------
'
' Mailout using CDONTS.NewMail
'
'--------------------------------------------------------------------

' declare all variables
Option Explicit
Dim objSendMail
Dim strTo, strFrom
Dim strSubject, strBody

 

' mail constants (some are for reference)
Const CdoBodyFormatHTML = 0 ' Body property is HTML
Const CdoBodyFormatText = 1 ' Body property is plain text (default)
Const CdoMailFormatMime = 0 ' NewMail object is in MIME format
Const CdoMailFormatText = 1 ' NewMail object is plain text (default)
Const CdoLow    = 0        ' Low importance
Const CdoNormal = 1        ' Normal importance (default)
Const CdoHigh  = 2        ' High importance
 
strFrom    = "someone@microsoft.com"  ' change to your email address
strTo      = "someone@microsoft.com"  ' change to the recipient's address
strSubject = "Test Message"          ' change to your subject
 
' this line calls the ReadFile() function to read the page contents
strBody = ReadFile("C:\MAILOUT.TXT")

' this line calls the MakePage() function to format the page as HTML
strBody = MakePage(strSubject,strBody)

' the following section creates the mail object and sends the mail
Set objSendMail = CreateObject("CDONTS.NewMail")
    objSendMail.From    = strFrom
    objSendMail.To      = strTo
    objSendMail.Subject = strSubject & " (" & Date() & ")"
    objSendMail.Body    = strBody

    objSendMail.BodyFormat = CdoBodyFormatHTML
    objSendMail.MailFormat = CdoMailFormatMime
    objSendMail.Importance = CdoNormal

    objSendMail.Send
Set objSendMail = Nothing

' this function returns a properly formatted HTML page
Function MakePage(txtSubject, txtBody)
    Dim txtTemp
    txtTemp = "<HTML>" & vbCrLf
    txtTemp = txtTemp & "<HEAD><TITLE>"
    txtTemp = txtTemp & txtSubject
    txtTemp = txtTemp & "</TITLE></HEAD>" & vbCrLf
    txtTemp = txtTemp & "<BODY>" & vbCrLf
    txtTemp = txtTemp & "<H2>" & txtSubject & "</H2>" & vbCrLf
    txtTemp = txtTemp & txtBody & vbCrLf
    txtTemp = txtTemp & "</BODY>" & vbCrLf
    txtTemp = txtTemp & "</HTML>"
    MakePage = txtTemp
End Function

' this function opens a file and returns the file's contents
Function ReadFile(txtFile)
    Dim txtTemp, objFS, objFL
    Set objFS = CreateObject("Scripting.FileSystemObject")
    Set objFL = objFS.OpenTextFile(txtFile)
    Do While Not objFL.AtEndOfStream
        txtTemp = txtTemp & objFL.ReadLine
        txtTemp = txtTemp & vbCrLf
    Loop   
    objFL.Close
    Set objFS = Nothing
    ReadFile = txtTemp
End Function

보낼 메일의 예약 작업을 만듭니다. 명령 세션을 열고 다음 예와 같이 입력합니다.
 

다음 작업은 오후 9시에 한 번 실행됩니다.
AT 9:00pm Cscript.exe C:\Mailout.vbs

다음 작업은 매주 월요일 오전 6시에 실행됩니다.
AT 6:00am /every:M Cscript.exe C:\Mailout.vbs

다음 작업은 매월 1일 오전 1시에 실행됩니다.
AT 1:00am /every:1 Cscript.exe C:\Mailout.vbs 

+ Recent posts