VBScriptでメール本文にテキストファイルを添付してその中身(コンテンツ)を含めるには、Microsoft Collaboration Data Objects (CDO)ライブラリを使用します。CDOオブジェクトを作成し、
Configurationオブジェクトのsendusingプロパティをsmtpsendに設定してから、Sender、To,Subject、TextBodyプロパティを設定します。次に、AttachmentsコレクションにテキストファイルをAddメソッドで追加し、Sendメソッドを実行してメールを送信します。
Dim objCDO, objMsg, objConf, objField
' CDOオブジェクトを作成する
Set objCDO = CreateObject("CDO.Message")
' 設定オブジェクトを取得する
Set objConf = objCDO.Configuration.Fields
' SMTPで送信するように設定する
objConf.Item("<<!nav>>smtpsend<<!/nav>>") = 1
objConf.Update
' 送信者を設定する
objCDO.From = "your_email@example.com"
' 宛先を設定する
objCDO.To = "recipient@example.com"
' 件名を設定する
objCDO.Subject = "添付テキストファイル付きメール"
' 本文を設定する(必要に応じて)
objCDO.TextBody = "テキストファイルの内容はこちらです。"
' テキストファイルの内容を読み込み、本文に挿入する
Dim objFSO, objFile
Set objFSO = CreateObject("<<!nav>>Scripting.FileSystemObject<<!/nav>>")
Set objFile = objFSO.OpenTextFile("C:\path\to\your\file.txt", 1) ' 読み取りモード (1)
Dim fileContent
fileContent = objFile.ReadAll
objFile.Close
' 本文に追加する、または直接本文として使用する
objCDO.TextBody = objCDO.TextBody & vbCrLf & fileContent
' メールを送信する
objCDO.Send
MsgBox "メールが送信されました。", vbInformation
Set objFile = Nothing
Set objFSO = Nothing
Set objCDO = Nothing
手順:
CDOオブジェクトの作成:`CreateObject(“CDO.Message”)`でメールを作成するためのオブジェクトを生成します。
設定の構成:
objCDO.Configuration.Fieldsから設定オブジェクトを取得します。objConf.Item("smtpsend") = 1でSMTPサーバー経由でメールを送信するように設定します。objConf.Updateで変更を適用します。 宛先と件名の設定:From、To、Subjectプロパティにそれぞれ適切な値を設定します。 テキストファイルの内容を読み込む:
Scripting.FileSystemObjectを作成し、OpenTextFileメソッドでテキストファイルを読み取りモード(1)で開きます。ReadAllメソッドでファイルの内容をすべて読み込みます。- ファイルを閉じます。
本文に追加または設定:読み込んだ
fileContentをobjCDO.TextBodyに直接設定するか、既存の本文に追加します。 メールの送信:
objCDO.Sendメソッドでメールを送信します。 オブジェクトの解放:オブジェクトを解放するために
Set obj = Nothingを使用します。注意点:
- VBScriptは非推奨の扱いであり、将来的には廃止される予定です。新しいシステムでは、Windows PowerShellや他のスクリプト言語の使用を検討してください。
- SMTPサーバーの設定(たとえば、ポート番号や認証情報など)が必要な場合は、
Configurationオブジェクトの他のプロパティ(http11sendvia、smtpauthenticateなど)を設定する必要があります。
【その他参考】
