MR2オーナー吉田貴幸のブログ

MR2(SW20)オーナー吉田貴幸のブログ。仕事はITインフラエンジニア。愛車の記事とIT関連の情報を発信しています

【Windows】[VBScript] CDO(Collaboration Data Objects)でメールを送信する

 

はじめに

CDO.Messageを使用して、VBScriptでメール送信を行う方法です。Windows標準機能のみでメールを送信できるので、OS環境に依存せず使用することが出来ます。

※メール送信に使用するSMTPサーバーは別途必要になります。

 

VBScriptでメールを送信する

  • mailsend.vbs
Set oMessage = CreateObject("CDO.Message")

'//差出人 oMessage.From = "username@test.com" '//宛先 複数の場合はセミコロンで区切る
oMessage.To = "username@test.com"
oMessage.CC = "username@test.com"
oMessage.BCC = "username@test.com"
'//添付ファイル
oMessage.AddAttachment = "添付するファイルをフルパスで指定"
'///件名
oMessage.Subject = "テストメールです" '//本文(テキスト形式)
oMessage.TextBody = "テストメールです。"& vbCRLF & "改行は vbCRLFを使用します"
'//メール送信設定
'//1:ローカルSMTPサービスのピックアップ・ディレクトリにメールを配置する(デフォルトの動作)
'//2:SMTPポートに接続して送信する
'//3:OLE DBを利用してローカルのExchangeに接続する oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 '//SMTPサーバー名
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtpservername"
'//ポート番号
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'//設定更新
oMessage.Configuration.Fields.Update

'//メールヘッダーの設定

'//設定は省略可能です。
'//メーラー
oMessage.Fields("urn:schemas:mailheader:X-Mailer") = "vbscript mail"
'//重要度
oMessage.objMail.Fields("urn:schemas:mailheader:Importance") = "High"
oMessage.objMail.Fields("urn:schemas:mailheader:Priority") = 1
oMessage.Fields("urn:schemas:mailheader:X-Priority") = 1
oMessage.Fields("urn:schemas:mailheader:X-MsMail-Priority") = "High"
oMessage.Fields.update

'//メール送信実行
oMessage.Send Set oMessage = Nothing

その他設定

添付ファイル

  • 添付ファイルは以下を追加する

'//添付ファイル
oMessage.AddAttachment "C:\Scripts\Output.txt"

 

HTML形式

  • メールをHTML形式で作成する場合は、oMessage.TextBody の部分をoMessage.HTMLBody にしてHTML形式で記載する
  • 暗号化通信(SSL)を使用する場合は、メール送信設定に以下を追加する
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl")  = True or Flase

 

SMTPサーバー認証

  • SMTPサーバー認証は、メール送信設定に以下を追加する
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1(Basic認証) or 2(NTLM認証)
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "ユーザー名"
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "パスワード"
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 180

 

 

参考記事

gallery.technet.microsoft.com

 

www.atmarkit.co.jp