VBScriptで指定したファイルをメール送信するTips

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!
https://column.api-ecosystem.sios.jp/connect/kong/1081/

【6/21開催】開発者目線でのSBOMとの向き合い方
SBOMの導入から開発者がSBOMの作成・管理を自動で行っていくための方法(デモ)を紹介します。SBOMを全く知らない人から、開発との統合までを紹介するので様々なレベルの方に学びがあるライブとなる予定です!
https://tech-lab.connpass.com/event/321422/

【7/19開催】現場で役立つAzure神小技10+α 〜生成AI,RAG,コスト削減など旬な技術満載のLT大会〜
Azureの最新技術や実用的な小技を紹介する特別なライトニングトーク大会を開催します!
https://tech-lab.connpass.com/event/319077/

【7/26開催】最適なIaCツールを選ぼう
プロジェクトでのツール選びに困らないための重要な観点をご説明します!
https://tech-lab.connpass.com/event/319532/

こんにちは、サイオステクノロジーの小川です。今回はWindows Serverで指定したファイルをメール送信して通知する機能を実装する案件があり、調査したところVBScriptを利用することで機能を実装できたので、そのTipsとしてブログにしたい思います。

メール通知スクリプト

メール通知スクリプトを以下に記載します。今回はファイル名をmail.vbsとします。

'------------------------------------
'             変数を定義
'------------------------------------
Dim filePath
Dim text
Dim log

'------------------------------------
'   メール通知内容ファイルパスの指定
'------------------------------------
filePath = "C:\AppFolder\log-file.txt"

'------------------------------------
'            テキスト設定
'------------------------------------
text = Date & "の結果は以下の通りです。"                        'Dateは日付の関数

'------------------------------------
'         ファイルの読み込み                                   'メール本文にログファイルの内容を記載する場合この設定をする
'------------------------------------
Set fileRead = CreateObject("Scripting.FileSystemObject")   'ファイルの読み込みのオブジェクト設定
Set fileText = fileRead.GetFile(filePath).OpenAsTextStream  'ファイルの中身をテキスト化する設定
log = fileText.ReadAll                                      'ファイルを1行ずつ読み込む
fileText.close                                              'テキスト化の終了
Set fileRead = Nothing                                      '読み込み設定の終了

'------------------------------------
'         オブジェクトの定義
'------------------------------------
Set oMsg = CreateObject("CDO.Message")

'------------------------------------
'         送信元・送信先を定義
'------------------------------------
oMsg.From = "送信元アドレス"
oMsg.To = "宛先アドレス"

'------------------------------------
'             件名・本文
'------------------------------------
oMsg.Subject = "出力ログ通知"
oMsg.TextBody = text & vbCrLf & vbCrLf & log       'textとログファイルの設定を本文にする(vbCrLfは改行)
oMsg.TextBody = text & vbCrLf                      'ログファイルを添付する場合、変数logはいらない

'------------------------------------
'            サーバー設定
'------------------------------------
strConfigurationField ="http://schemas.microsoft.com/cdo/configuration/"
With oMsg.Configuration.Fields
   .Item(strConfigurationField & "sendusing") = 2                     '設定値の説明は以下に記載
   .Item(strConfigurationField & "smtpserver") = "smtpサーバー名"
   .Item(strConfigurationField & "smtpserverport") = "smtpポート"
   .Item(strConfigurationField & "smtpusessl") = true/false           'use sslの設定
   '------------------- smtp認証を設定する場合以下を設定 ------------
   .Item(strConfigurationField & "smtpauthenticate") = 2              '1(Basic認証)/2(NTLM認証)
   .Item(strConfigurationField & "sendusername") = "送信ユーザー名"     'smtp-authを利用する場合必要
   .Item(strConfigurationField & "sendpassword") = "送信パスワード"     'smtp-authを利用する場合必要
   .Item(strConfigurationField & "smtpconnectiontimeout") = 60
   '--------------------------------------------------------------
   .Update
end With

'------------------------------------
'          添付ファイルの設定         (ファイルを添付しない場合は設定しない)
'------------------------------------
oMsg.AddAttachment(filePath)          '添付ファイルの設定

'------------------------------------
'               送信
'------------------------------------
on error resume next
oMsg.Send                             'メール送信設定(この設定のみでも問題ない)
if Err.Number <> 0 then
strMessage = Err.Description          'メール送信に失敗した場合、エラーをコマンドに出力
else
strMessage = "Email has been sent."   '送信が完了したらコマンドに出力
end if
on error goto 0
Wscript.Echo strMessage

sendusingの設定値について

設定値設定値の説明
1ローカルSMTPサービスにメールを配置する
2SMTPポートに接続して送信する
3OLE DBを利用してローカルのExchangeに接続する

メール通知実行

メールを送信するにはコマンドプロンプトでcscriptコマンドを使用します。

> cscript mail.vbs

以上で指定したファイルをメールで送信し、通知することができます。

アバター画像
About 小川雄大 27 Articles
IDaaSプロジェクトを担当。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

3人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

1 Comment

  1. PP様

    本ブログを読んで下さり誠にありがとうございます。ご指摘頂きまして誠にありがとうございます。
    修正させて頂きました。

    今後とも、本ブログをよろしくお願い致します。

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる