でじまみ

でじまみ

2012.06.25
XML
カテゴリ: 小規模オフィス
e-mail.jpg




例えば「伝票を作ってメールで添付して送信する」という作業は日常かなり多いと思います。

これが1日に複数回、同じ宛先に同じ件名とメッセージを添えて送信となると、何とか作業を楽にしたいものです。

そこで「添付ファイルを自動でメール送信する」というのをやってみました。


イメージとしては、

  1. デスクトップ上のフォルダ「送信フォルダ」に送りたいファイルを入れる
  2. フォルダ監視ソフトでそのフォルダを監視し、ファイルが入れられたら自動送信するバッチが起動する
  3. 送信後、そのファイルを自動で削除する

このような一連の流れにしたいと思います。


まず、主体となるプログラムをVBSで以下のように記述してみました。

(実はVBといってもExcelとかのVBAを少しかじったぐらいで、これはネットであれこれ調べて見よう見まねで作成したものです)

≪2013/4/3 追記あり≫


Dim Fs, strPath, Fl, F, NewFile, NewFileFP, OutF
Set Fs = CreateObject("Scripting.FileSystemObject")
strPath = "C:\Users\owner\Desktop\送信フォルダ\"
NewFile = ""
Set Fl = Fs.GetFolder(strPath)
For Each F In Fl.Files
If F.Name > NewFile Then
NewFile = F.Name
End If
Next
NewFileFP = Fl & "\" & NewFile
Dim WshShell, BtnCode
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objShell = CreateObject("Wscript.Shell")
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "ファイル送信元 <aaa@xxx.co.jp>" '送信元
oMsg.To = "bbb@xxx.co.jp; ccc@xxx.co.jp" '送信先
oMsg.Bcc = "aaa@xxx.co.jp"
oMsg.Subject = "ファイルの送信" '件名
oMsg.TextBody = "ファイルをお送りします。" 'メール本文
oMsg.AddAttachment NewFileFP '添付
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx.xxx.xxx.xxx"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"

oMsg.Configuration.Fields.Update
oMsg.Send
Set OutF = Fs.OpenTextFile("C:\FileSend\Fsend.log",8)
OutF.WriteLine "Date[" & date & "] Time[" & time & "] File[" & NewFile & "]"
OutF.Close
Fs.DeleteFile NewFileFP
objShell.Popup "メール送信しました。", 0, "送信完了", 0
Set Fs = Nothing
Set Fl = Nothing
Set OutF = Nothing


3行目はデスクトップ上の「送信フォルダ」のパスを記述します



19行目のBccは確認のため自身に送るものです

26行目の"xxx.xxx.xxx.xxx" はSMTPサーバーです

28行目はSMTPのポート番号 25または587です


30行目 1(Basic認証) または 2(NTLM認証)
32行目 ユーザー名
34行目 パスワード

32行目はあとで用意するログファイルのパスです


これをメモ帳などで編集し、「FileSend.vbs」と名前を付けて保存します。


次に「C:\FileSend」を用意します。

  • 2012-4-12_17-46-1_No-00.jpg



その中に新規テキストファイル「Fsend.log」を作成し、先ほどの「FileSend.vbs」を入れます。


  • 2012-4-12_17-47-13_No-00.jpg




では、実際バッチを実行してファイルを送ってみます。

デスクトップに「送信フォルダ」を用意し、そこにテスト用のファイルを入れてバッチを実行します。

  • 2012-4-12_18-10-22_No-00.jpg



このようにメッセージが表示され、




「送信フォルダ」の中のファイルは削除されています。

  • 2012-4-12_18-15-58_No-00.jpg





  • 2012-4-12_18-18-19_No-00.jpg



ログファイル「Fsend.log」にも記録されています。

  • 2012-4-13_10-1-21_No-00.jpg




もしうまく送信できない時は、メールアドレス、サーバアドレス、ポート番号を見直してください。




関連記事

ファイルをメールで自動送信する 2 「フォルダ監視ソフトを使う」

新サーバ切り替えに伴い、メールを自動で送るVBScriptの書き換え

出勤時のタイムカードの代わりにメール送信




参考リンク

Windows標準機能とWSHを使ってメールを送信する









お気に入りの記事を「いいね!」で応援しよう

Last updated  2013.04.03 20:24:33
コメント(2) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

Keyword Search

▼キーワード検索

Free Space














気になるアイテム




































Calendar


© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: