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
