怠日記

写真・金魚・昆虫・プログラミングの趣味を語るサイトです。似たようなことをnoteにも書いたり書いてなかったり。

VBScript - テキストメールを送信する(CDO利用)

Description:

CDOMicrosoft Collaboration Data Objects)を使って VBScript からテキスト形式のメールを送信する方法を説明します。

Body:

CDO.Message クラスを使って、VBScript からテキストメールを送信できます。

送信までの手順は以下のとおり。

  1. CDO.Message オブジェクトを生成する。
  2. Configuration を設定する。
  3. メールの内容を設定する。
  4. メールを送信する。

CDO.Message オブジェクトの生成

CreateObject() でオブジェクトを生成します。

Dim msg
Set msg = CreateObject("CDO.Message")

Configuration の設定

  1. CDO.Message オブジェクトの Configuration に次の項目を設定します。

    http://schemas.microsoft.com/cdo/configuration/sendusing

    SMTP サーバーを指定するので 2 を設定します。

    http://schemas.microsoft.com/cdo/configuration/smtpserver

    SMTP サーバーのアドレスを設定します。

    http://schemas.microsoft.com/cdo/configuration/smtpserverport

    SMTP サーバーのポート番号を設定します。

  2. Configuration.Fields.Update を実行し、設定した内容を保存します。

    msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.test.co.jp"
    msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    msg.Configuration.Fields.Update

メールの内容を設定

From に差出人のメールアドレスを設定します。

msg.From = "sato@test.co.jp"

差出人の表示名も指定したい場合は、 ""差出人の表示名"" <差出人のメールアドレス> の形式で設定します。

msg.From = """佐藤"" <sato@test.co.jp>"

To に宛先を、 CC にCCを、 BCCBCCのメールアドレスを設定します。

msg.To = "suzuki@hoge.co.jp"
msg.CC = "takahashi@hoge.co.jp"
msg.BCC = "tanaka@hoge.co.jp"

Subject に件名を、 TextBody にメール本文を設定します。

msg.Subject = "テスト件名"
msg.TextBody = "テスト本文"

メールの送信

Send メソッドでメールを送信します。

msg.Send

コード全文

以下のコードは、CDO を使って VBScript からテキストメールを送信します。

Option Explicit
With CreateObject("CDO.Message")
  'SMTPサーバーを指定するので 2 にする
  .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  'SMTPサーバーのアドレスとポート番号
  .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.test.co.jp"
  .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
  'Fieldsに設定した内容を保存
  .Configuration.Fields.Update
  '差出人
  .From = """佐藤"" <sato@test.co.jp>"
  '宛先
  .To = "suzuki@hoge.co.jp"
  'CC
  .CC = "takahashi@hoge.co.jp"
  'BCC
  .BCC = "tanaka@hoge.co.jp"
  '件名
  .Subject = "テスト件名"
  '本文
  .TextBody = "テスト本文"
  '送信(Configuration オブジェクトで指定したメソッドが使われる)
  .Send
End With