VBScript(Visual Basic Scripting Edition)は、Windows環境でのタスク自動化に非常に便利なスクリプト言語です。
今回は、VBScriptを使用してメールを送信する方法を紹介します。
メール送信は、システム管理や通知機能を自動化するために役立ちます。
CDOSYSを使用したメール送信
CDOSYS (Collaboration Data Objects for Windows 2000) は、Windows 2000以降のバージョンに組み込まれているコンポーネントで、メールの送信に使用できます。
以下は、CDOSYSを使用してメールを送信する基本的なスクリプトです。
Dim objMessage
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "テストメール"
objMessage.From = "sender@example.com"
objMessage.To = "recipient@example.com"
objMessage.TextBody = "これはVBScriptから送信されたテストメールです。"
' SMTPサーバの設定
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.example.com"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
' メールの送信
objMessage.Send
Set objMessage = Nothing
SMTP認証を使用したメール送信
多くのSMTPサーバは認証を必要とします。
以下のスクリプトは、SMTP認証を使用してメールを送信する例です。
Dim objMessage
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "テストメール(認証付き)"
objMessage.From = "sender@example.com"
objMessage.To = "recipient@example.com"
objMessage.TextBody = "これはVBScriptから送信されたテストメール(SMTP認証付き)です。"
' SMTPサーバの設定
With objMessage.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.example.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "your_username"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "your_password"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update
End With
' メールの送信
objMessage.Send
Set objMessage = Nothing
HTMLメールの送信
次に、HTML形式のメールを送信する方法を紹介します。
これにより、リッチテキスト形式のメールを送信できます。
Dim objMessage
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "HTML形式のテストメール"
objMessage.From = "sender@example.com"
objMessage.To = "recipient@example.com"
objMessage.HTMLBody = "<h1>これはHTML形式のメールです</h1><p>VBScriptから送信されました。</p>"
' SMTPサーバの設定
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.example.com"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
' メールの送信
objMessage.Send
Set objMessage = Nothing
添付ファイル付きメールの送信
最後に、メールに添付ファイルを追加する方法を紹介します。
Dim objMessage
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "添付ファイル付きのテストメール"
objMessage.From = "sender@example.com"
objMessage.To = "recipient@example.com"
objMessage.TextBody = "これは添付ファイル付きのメールです。"
objMessage.AddAttachment "C:\path\to\your\file.txt"
' SMTPサーバの設定
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.example.com"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
' メールの送信
objMessage.Send
Set objMessage = Nothing
まとめ
VBScriptを使用すると、さまざまな形式のメールを送信できます。
ここで紹介した基本的なスクリプトを活用することで、システム管理や通知機能を効率的に自動化できます。
実際の環境でスクリプトを使用する際は、セキュリティと認証情報の管理に注意してください。
これで、VBScriptを使ったメール送信の基本をマスターできるはずです。
次のステップとして、これらのスクリプトを実際の業務やプロジェクトで活用し、さらに高度な操作やカスタマイズを試してみてください。