Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

Outlookから決まったファイル名の添付ファイルを付けて定型のメールを送るVBscript(メール本文も貼り付け版)

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

Outlookから決まったファイル名の添付ファイルを付けて定型のメールを送るVBscript | TRAINING GROUNDS

※↑に添付のテキストファイルの中身を貼り付ける部分を追加しています。

以下のコードを.vbsで保存。item.Sendの行を取れば送信されずにメールが立ち上がって止まるので自分のタイミングで送信できます。
タスクスケジューラに設定すれば自動で生成したレポートファイルをある時間に送信なんてことができます。
ちなみにWindows11のメモ帳で一から作成するとUTF-8で保存されるかと思いますが、SJISで保存しないと、実行時に「終了していない文字列型の定数です」とか出てエラーになるので、UTF8で作成してしまったら、サクラなど他のエディタを使うなどしてSJISで保存する必要があります。

Option Explicit

Dim olk,item,mailBody,mailSubject,mailAttachment,name,mailAddress,timeZone,byLine,mailTo,mailCc,KAIGYO

name="hoge"
mailAddress="xxx@xxxxx.com"
mailTo="xxx1@xxxxx.net;xxx2@xxxxx.net"
mailCc=""

Set olk = CreateObject("Outlook.Application")
Set item = olk.CreateItem(0)
KAIGYO = vbCrLf

timeZone = Right("0" & Hour(Now)-1,2) & Right("0" & Hour(Now),2) & ":00"

mailSubject="メールの件名"
mailSubject=mailSubject & Year(Date) & "/" & Right("0" & Month(Date),2) & "/" & Right("0" & Day(Date),2)

mailBody = "みなさま" & KAIGYO & KAIGYO
mailBody =mailBody &"おつかれさまです。"& name &"です。"& KAIGYO & KAIGYO
mailBody =mailBody &"ファイルを送るよ。"& KAIGYO 
mailBody =mailBody &"添付ファイルの中身を本文にも貼っているよ"& KAIGYO & KAIGYO

mailAttachment ="C:\PATHTOFILE"

Dim objFSO, objFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\path\to\your\file.txt", 1)
Dim fileContent
fileContent = objFile.ReadAll
objFile.Close
item.To = mailTo
item.Cc = mailCc
item.Subject = mailSubject
item.Body = mailBody
item.Body = mailBody & vbCrLf & fileContent
item.Attachments.Add mailAttachment
item.Display
item.Send

Set item = Nothing
Set olk = Nothing

Wscript.Quit 0

こんな感じのメールが来ます。

件名:メールの件名2022/07/28 (←本日日付が入るようになっています)
本文:
みなさま

おつかれさまです。hogeです。

ファイルを送るよ。
添付ファイルの中身を本文にも貼っているよ

添付ファイル:指定したパスの添付ファイル(←ファイル名固定)

複数ファイルを添付したい場合は変数をもう一つ定義して複数回addします。

Option Explicit

Dim olk,item,mailBody,mailSubject,mailAttachment,mailAttachment2,name,mailAddress,timeZone,byLine,mailTo,mailCc,KAIGYO

name="hoge"
mailAddress="xxx@xxxxx.com"
mailTo="xxx1@xxxxx.net;xxx2@xxxxx.net"
mailCc=""

Set olk = CreateObject("Outlook.Application")
Set item = olk.CreateItem(0)
KAIGYO = vbCrLf

timeZone = Right("0" & Hour(Now)-1,2) & Right("0" & Hour(Now),2) & ":00"

mailSubject="メールの件名"
mailSubject=mailSubject & Year(Date) & "/" & Right("0" & Month(Date),2) & "/" & Right("0" & Day(Date),2)

mailBody = "みなさま" & KAIGYO & KAIGYO
mailBody =mailBody &"おつかれさまです。"& name &"です。"& KAIGYO & KAIGYO
mailBody =mailBody &"ファイルを2つ送るよ。"& KAIGYO 
mailBody =mailBody &"添付ファイルの中身を本文にも貼っているよ"& KAIGYO & KAIGYO

mailAttachment ="C:\PATHTOFILE"

Dim objFSO, objFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\path\to\your\file.txt", 1)
Dim fileContent
fileContent = objFile.ReadAll
objFile.Close
item.To = mailTo
item.Cc = mailCc
item.Subject = mailSubject
item.Body = mailBody
item.Body = mailBody & vbCrLf & fileContent
item.Attachments.Add mailAttachment
item.Attachments.Add mailAttachment2
item.Display
item.Send

Set item = Nothing
Set olk = Nothing

Wscript.Quit 0
タイトルとURLをコピーしました