最終更新: twoflat1017 2013年10月12日(土) 08:09:36履歴
メールをフォルダにドラッグアンドドロップすると、拡張子としてemlを持つファイルが生成される。もともとのメールに添付ファイルがある場合は、生成されたemlファイルにも添付ファイルが添付された状態となっている。そこで、生成されたemlファイルから添付ファイルをディスクに保存するスクリプトを作ってみた。
以下のようにした。
クラス定義しており、使用時はnew Emailの後ファイルパスをsetPathで指定するか、ショートカットのEMに引数でファイルパスを与えて呼ぶ、のいずれか。
クラス定義しており、使用時はnew Emailの後ファイルパスをsetPathで指定するか、ショートカットのEMに引数でファイルパスを与えて呼ぶ、のいずれか。
Option Explicit 'shortcut Function EM(ByVal path) Dim ret Set ret = New EMail ret.setPath(path) Set EM = ret End Function Class EMail Private path Private fs 'コンストラクタ Private Sub Class_Initialize() Set fs = WScript.CreateObject("Scripting.FileSystemObject") path = "" End Sub ' デストラクタ Private Sub Class_Terminate() Set fs = Nothing End Sub Public Sub setPath(ByVal spec) If spec <> "" Then path = spec End If End Sub Public Function SaveAttachment(outpath) Dim temp temp = False If path <> "" Then If fs.FileExists(path) Then Dim Message,Stm,Attachment Dim SaveFile '第一引数をemlファイルとして読込 Set Message = CreateObject("CDO.Message") Set Stm = CreateObject("ADODB.Stream") 'emlファイルを開く Stm.Open Stm.LoadFromFile path Message.DataSource.OpenObject Stm, "_Stream" For Each Attachment In Message.Attachments SaveFile = fs.GetAbsolutePathName(fs.BuildPath(outpath, Attachment.FileName)) objLogFile.Write 1, "SaveFile : " & SaveFile Attachment.saveToFile SaveFile Next Stm.Close End If End If SaveAttachment = temp End Function End Class
タグ
コメントをかく