★[IIS] WSH および CDONTS を使用した、 スケジュールされた電子メール メッセージの作成方法 Microsoft Internet Information Server 4.0 Microsoft Internet Information Services 5.0 概要 Windows NT Option Pack (NTOP) と Windows 2000 は、デフォルトで Simple Mail Transfer Protocol (SMTP) サービスをインストールしています。 SMTP サービスは、ASP (Active Server Pages) を使用する電子メール ベースの HTML フォーム処理など、さまざまな目的に使用できます。 この資料の目的は、Windows スクリプト ホスト (WSH) および SMTP サービスの CDONTS.NewMail オブジェクトの電子メール機能を使用して、 発信時刻をスケジュールしたメールを作成する手順を説明することです。 詳細 次の例では、メールを送信するための WSH スクリプトの作成方法の他に、 メールの内容を更新できるテキスト ファイルおよびメールを送信するための スケジュールされたタスクの作成方法についても手順を追って説明します。 スケジュールされる機能を設定する最初の手順は、スケジューラ サービスが 実行されていることを確認することです。 タスク バーから [スタート] ボタンをクリックし、[設定] をポイントしてから [コントロール パネル] をクリックします。 [コントロール パネル] にある [サービス] をダブルクリックします。 [Task Scheduler] サービスまで下にスクロールします。 [状態] が [開始] になっていることを確認します。 [スタートアップの種類] が [自動] になっていることを確認します。 閉じるボタンをクリックして [サービス] を終了し、[コントロール パネル] を終了します。 次の内容のテキスト ファイルを作成して、そのファイルをコンピュータに C:\Mailout.txt として保存します。

This is line 1.

This is line 2.

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 = "" & vbCrLf txtTemp = txtTemp & "" txtTemp = txtTemp & txtSubject txtTemp = txtTemp & "" & vbCrLf txtTemp = txtTemp & "" & vbCrLf txtTemp = txtTemp & "

" & txtSubject & "

" & vbCrLf txtTemp = txtTemp & txtBody & vbCrLf txtTemp = txtTemp & "" & vbCrLf txtTemp = txtTemp & "" 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 時に 1 回実行されます。 AT 9:00pm Cscript.exe C:\Mailout.vbs このタスクは毎月曜の午前 6 時に実行されます。 AT 6:00am /every:M Cscript.exe C:\Mailout.vbs このタスクは毎月 1 日の午前 10 時に実行されます。 AT 1:00am /every:1 Cscript.exe C:\Mailout.vbs 前述のタスクで選択したスケジュール時刻に従って、電子メールは指定した時刻になると 送信されます。